Tutorial de SQL
Cómo usar GROUP BY en SQL
GROUP BY separa las filas en grupos, uno por cada valor distinto de una columna, y aplica una función como COUNT, SUM o AVG a cada grupo. Es lo mismo que hace una tabla dinámica de Excel, pero con una consulta. Aquí verás la sintaxis, qué columnas pueden ir en el SELECT y un ejemplo resuelto que cuenta alumnos por grupo.
GROUP BY: un resumen por grupo
COUNT, SUM y AVG resumen toda la tabla en una fila. Con GROUP BY el resumen se hace por grupos: una fila por cada valor distinto de la columna que indiques.
Imagina que separas las filas en montoncitos (uno por grupo) y aplicas la función a cada montón. Es lo que hace una tabla dinámica de Excel.
La columna del GROUP BY también va en el SELECT, para saber a qué grupo pertenece cada resultado.
Cómo se escribe
SELECT columna, COUNT(*) FROM tabla GROUP BY columna
- GROUP BY columna
- forma un grupo por cada valor distinto de la columna
- columna (en el SELECT)
- muestra el nombre del grupo
- COUNT(*)
- cuántas filas tiene cada grupo
Ejemplo resuelto
SELECT grupo, COUNT(*) FROM alumnos GROUP BY grupo| Número de fila# | grupo | COUNT(*) |
|---|---|---|
| 1 | 1° A | 4 |
| 2 | 1° B | 3 |
| 3 | 2° A | 3 |
Cuántos alumnos hay en cada grupo.
- En el SELECT solo pon la columna del GROUP BY y funciones de agregado. Una columna suelta como nombre no tiene un único valor por grupo.
- GROUP BY va después de FROM y del WHERE (si lo hay).
Preguntas frecuentes
¿Qué columnas puedo poner en el SELECT con GROUP BY?
La columna del GROUP BY y funciones de agregado como COUNT, SUM o AVG. Una columna suelta, como el nombre, no tiene un único valor por grupo.
¿Dónde va GROUP BY en la consulta?
Después de FROM y del WHERE, si lo hay.