← SQL Fundamentals

GROUP BY: resume por grupos

Hasta ahora cada función de agregación resumía toda la tabla en una sola fila. GROUP BY divide las filas en grupos que comparten un valor y calcula el agregado dentro de cada grupo.

SELECT city, COUNT(*) FROM students GROUP BY city no devuelve una única fila: devuelve una fila por ciudad. Las columnas que no son agregados deben aparecer en GROUP BY.

Compara las dos perspectivas: consultar filas individuales responde «¿qué estudiante?»; agrupar responde «¿cómo es cada ciudad en conjunto?».

01

Filas individuales

students
citynamegrade
MadridAna8.7
MadridCarla9.2
SevillaBruno6.5
SevillaElena8.1
02

Contar por grupo

SELECT city, COUNT(*) AS total_students
FROM students
GROUP BY city;
03

Una fila por grupo

citytotal_students
Madrid3
Sevilla2
Valencia1
Bilbao1
04

El agregado cambia de escala

COUNT(*) deja de contar toda la tabla y pasa a contar las filas de cada grupo.

Ahora te toca a ti
Usa lo que acabas de aprender.