Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
Oracle/PLSQL: Cláusula HAVING
Este tutorial de Oracle describe cómo usar Oracle Cláusula HAVING Con sintaxis y ejemplos.
describir
La cláusula HAVING de Oracle se usa junto con la cláusula GROUP BY para limitar el grupo de filas devuelto solo a las filas para las que la condición es VERDADERA.
sintaxis
La sintaxis de la cláusula HAVING en Oracle/PLSQL es:
SELECT expression1, expression2, ... expression_n, aggregate_function (aggregate_expression) FROM tables [WHERE conditions] GROUP BY expression1, expression2, ... expression_n HAVING having_condition;
parámetro o parámetro
expresión1, expresión2, … expresión_n Expresiones que no están encapsuladas en funciones agregadas y deben incluirse en la cláusula GROUP BY. La función agregada puede ser una función como SUM, COUNT, MIN, MAX o AVG. expresión_agregada Esta es la columna o expresión que usará la función_agregada. tabla La tabla de la que desea recuperar registros. Debe aparecer al menos una tabla en la cláusula FROM. La condición WHERE es opcional. Estos son los criterios para la selección de registros. have_condition Esta es una condición adicional que se aplica solo a los resultados agregados para limitar los grupos de filas devueltas. Solo los grupos para los que la condición se evalúa como VERDADERO se incluyen en el conjunto de resultados.
Ejemplo: uso de la función SUMA
Veamos un ejemplo de una cláusula HAVING de Oracle usando la función SUM.
También puede utilizar la función SUMA para devolver el nombre del departamento y las ventas totales (en el departamento correspondiente). La cláusula HAVING de Oracle filtrará los resultados para que solo se devuelvan los departamentos con ventas superiores a $25,000.
SELECT department, SUM(sales) AS "Total sales" FROM order_details GROUP BY department HAVING SUM(sales) > 25000;
Ejemplo: uso de la función CONTAR
Veamos cómo usar la cláusula HAVING con la función COUNT.
Puede usar la función CONTAR para obtener el nombre del departamento y la cantidad de empleados (en el departamento correspondiente) que ganan menos de $49 500 por año. La cláusula Oracle HAVING filtrará los resultados para que solo se devuelvan los departamentos con más de 10 empleados.
SELECT department, COUNT(*) AS "Number of employees" FROM employees WHERE salary < 49500 GROUP BY department HAVING COUNT(*) > 10;
Ejemplo: uso de la función MIN
A continuación, veamos cómo usar la cláusula HAVING con la función MIN.
También puede usar la función MIN para devolver el nombre de cada departamento y el salario mínimo del departamento. La cláusula HAVING de Oracle solo devolverá departamentos con un salario mínimo inferior a $42,000.
SELECT department, MIN(salary) AS "Lowest salary" FROM employees GROUP BY department HAVING MIN(salary) < 42000;
Ejemplo: uso de la función MAX
Finalmente, veamos cómo usar la cláusula HAVING con la función MAX.
Por ejemplo, también puede utilizar la función MAX para devolver el nombre de cada departamento y el salario máximo del departamento. La cláusula HAVING de Oracle solo devolverá departamentos con un salario máximo superior a $ 45,000.
SELECT department, MAX(salary) AS "Highest salary" FROM employees GROUP BY department HAVING MAX(salary) > 45000;