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.
PostgreSQL: tiene cláusula
Este tutorial de PostgreSQL explica cómo usar PostgreSQL Cláusula HAVING Con sintaxis y ejemplos.
describir
La cláusula PostgreSQL HAVING se usa junto con la cláusula GROUP BY para limitar el grupo de filas devueltas a solo aquellas para las que la condición es VERDADERA.
sintaxis
La sintaxis de la cláusula HAVING en PostgreSQL es:
SELECT expression1, expression2, ... expression_n, aggregate_function (expression) FROM tables [WHERE conditions] GROUP BY expression1, expression2, ... expression_n HAVING condition;
parámetro o parámetro
Función_agregada Puede ser una función agregada, como una función de suma, conteo, mínimo, máximo o promedio. 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 condición WHERE es opcional. Estos son los criterios para la selección de registros. Condición HAVING Esta es una condición adicional que se aplica solo a los resultados agregados para limitar los grupos de filas devueltos. 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 de suma
Veamos un ejemplo de una cláusula HAVING de PostgreSQL usando la función sum.
También puede usar la función de suma para devolver el departamento y el salario total (para ese departamento). La cláusula HAVING de PostgreSQL filtrará los resultados para que solo se devuelvan los departamentos con un salario bruto superior a $50,000.
SELECT department, sum(salary) AS "Salaries for department" FROM employees GROUP BY department HAVING sum(salary) > 50000;
Ejemplo: uso de la función de conteo
Veamos cómo usar la cláusula HAVING con la función de conteo.
Puede usar la función de conteo para devolver un departamento y la cantidad de empleados con un estado “activo” (para ese departamento). La cláusula HAVING de PostgreSQL filtrará los resultados para que solo se devuelvan los departamentos con menos o igual a 35 empleados.
SELECT department, count(*) AS "Number of employees" FROM employees WHERE status="Active" GROUP BY department HAVING count(*) <= 35;
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 PostgreSQL solo devolverá departamentos con salarios mínimos por debajo de $29,000.
SELECT department, min(salary) AS "Lowest salary" FROM employees GROUP BY department HAVING min(salary) < 29000;
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 usar la función max para devolver el nombre de cada departamento y el salario más alto para ese departamento. La cláusula HAVING de PostgreSQL devolverá solo aquellos departamentos con un salario máximo mayor o igual a $31,950.
SELECT department, max(salary) AS "Highest salary" FROM employees GROUP BY department HAVING max(salary) >= 31950;