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.