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?».

