Cuándo usar HAVING en SQL

Cuándo usar HAVING en SQL se confunde a menudo con WHERE. Regla práctica: WHERE filtra filas antes de agrupar; HAVING filtra grupos ya agregados.

Ejemplo

SELECT departamento, COUNT(*) AS empleados
FROM empleados
GROUP BY departamento
HAVING COUNT(*) > 10;

Aquí no puedes sustituir HAVING por WHERE COUNT(*) > 10 en la mayoría de motores, porque el conteo existe solo tras el GROUP BY.

Casos típicos

  • Departamentos con más de N empleados.
  • Clientes cuyo total de compras supera un umbral.
  • Categorías con media de precio fuera de rango.

Repasa agregaciones en el módulo GROUP BY.