Oracle/PLSQL: Cláusula HAVING

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;
(Visited 3 times, 1 visits today)