Clase 05 · 18 minGratis
Funciones de agregación, GROUP BY y HAVING
Clase 5 del curso gratis SQL desde Cero: resumir datos con COUNT, AVG, MIN, MAX y SUM, ordenar con ORDER BY, agrupar con GROUP BY y filtrar los grupos con HAVING.
Toca cualquier marca ▸ 0:00 de los apuntes y el video salta a ese momento. Abrir en YouTube
Hasta ahora traíamos datos tal cual. Esta clase es la de resumir, lo que
en Excel harías con una fórmula . Seguimos con la tabla
nombre_tabla.
COUNT y los alias
AS le pone un alias a la columna del resultado .
Funciona sin AS (con solo dejar un espacio), pero escribirlo hace la consulta
más legible.
AVG, MIN y MAX, con o sin filtro
Las funciones de agregación también respetan el WHERE: primero se filtra,
después se resume .
Como la base es de práctica, tus números serán distintos a los del video; lo que importa es la forma de la consulta.
ORDER BY: otra forma de encontrar el máximo
ORDER BY ordena de menor a mayor; con DESC, de mayor a menor
. Ordenar y tomar el primero da el mismo resultado que
MAX:
GROUP BY: la misma métrica, por grupos
Hasta aquí, cada función resumía toda la tabla (o lo que dejara el filtro).
GROUP BY calcula la métrica una vez por cada grupo :
Agrupa por columnas con pocos valores distintos (10 países). Agrupar por algo con miles de valores únicos da un resultado casi tan largo como la tabla .
Grupos de dos niveles y varias métricas
El grupo de menor edad promedio son las mujeres de Uruguay
, igual que en el video. Puedes poner tantas métricas
como quieras en el mismo SELECT , y COUNT(DISTINCT …)
cuenta valores únicos :
HAVING: filtrar los grupos
WHERE filtra registros antes de agrupar; HAVING filtra el resultado
de los grupos . Por eso HAVING puede usar una
agregación y WHERE no.
No descargues todo para filtrar después en Excel: pídeselo a SQL .
El orden de las piezas.
SELECT→FROM→WHERE→GROUP BY→HAVING→ORDER BY→LIMIT. Si cambias el orden, la consulta falla.
Retos de esta clase
1. Cuántas personas hay de cada género (dos columnas: el género y la cantidad).
2. Para cada país, la edad mínima y la máxima, pero solo de los países donde la persona más joven tiene 15 años. Tres columnas: país, mínima, máxima.
3. Los tres países con más personas mayores de 60, de mayor a menor. Dos columnas: país y cantidad.
