Cláusula HAVING en SQL
La cláusula HAVING se aplica en condición al conjunto de resultados agrupados que una consulta devuelve cuando hace uso de la cláusula GROUP BY, es decir:
Solo es usada cuando también se usa la cláusula WHERE.
Solo la podemos aplicar a las columnas devueltas en la consulta, no pueden aplicarse a una columna de la tabla.
La condición HAVING la vamos a aplicar luego de aplicar todas las condiciones de la cláusula WHERE y se completan todas las operaciones de GROUP BY, es decir, se ejecuta después de las cláusulas WHERE y GROUP BY.
La condición obtiene la misma forma que cualquier condición de la cláusula WHERE.
Ejemplo:
SELECT department_id, MIN(salary)
FROM hr.employees
GROUP BY department_id
HAVING MIN(salary) > 24000;
Diferencias entre las clausulas WHERE y HAVING:
La cláusula WHERE se aplica a todos los registros de la tabla.
La cláusula HAVING se aplica a los datos devueltos por la sentencia SELECT cuando usa la cláusula GROUP BY.
SELECT DEPARTMENT_ID, FIRST_NAME, SALARY FROM EMPLOYEES EM WHERE SALARY = (SELECT MAX(SALARY) FROM EMPLOYEES E WHERE EM.DEPARTMENT_ID = E.DEPARTMENT_ID ).
Ejemplos Cláusula HAVING


