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

Pruébalo · base personas

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 .

Pruébalo · base personas

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:

Pruébalo · base personas

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 :

Pruébalo · base personas

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

Pruébalo · base personas

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 :

Pruébalo · base personas

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.

Pruébalo · base personas

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).

Reto · base personas

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.

Reto · base personas

3. Los tres países con más personas mayores de 60, de mayor a menor. Dos columnas: país y cantidad.

Reto · base personas

Sigue con la clase 6

JOIN: cruzar información de varias tablas

Seguir el canal de WhatsApp