AD

¿Ya dominas lo básico? Un curso estructurado de SQL es la vía rápida para dar el salto.

Ver cursos de SQL en Udemy

Enlace de afiliado. No te cuesta nada extra.

🗄️Lecciones de SQL
Lección 17 / 50

Filtrar agregados con HAVING

En esta lección filtrarás por el resultado de un cálculo agregado, algo que WHERE no puede hacer.

La diferencia es cuándo actúa cada uno: WHERE filtra las filas antes de agrupar y HAVING filtra los grupos después. Por eso HAVING es el único que puede usar COUNT(), SUM() o AVG() en su condición.

El código de ejemplo cuenta estudiantes por clase y se queda solo con las clases que tienen dos o más. La clase 2, con un solo estudiante, queda fuera del resultado.

El error más frecuente es intentar poner una función de agregación en el WHERE: WHERE COUNT(*) >= 2 siempre da error, porque en ese momento del proceso todavía no existen los grupos.

Por rendimiento conviene filtrar en el WHERE todo lo que se pueda, porque reduce las filas antes de agrupar, y dejar en HAVING solo las condiciones que de verdad dependen del agregado. Las dos cláusulas se usan juntas constantemente.

SQL
SALIDA

💡 El motor de SQL puede tardar unos segundos en cargarse la primera vez que ejecutas código.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)