Bases de datos y SQL · revisado en julio de 2026
GROUP BY
GROUP BY es una cláusula de SQL (y un método equivalente en pandas) que agrupa filas que comparten el mismo valor en una o más columnas, para luego aplicarles una función de agregación como COUNT, SUM o AVG a cada grupo por separado. Es la base de casi cualquier reporte resumido.
SELECT cliente_id, SUM(total) AS total_gastado FROM pedidos GROUP BY cliente_id;
Preguntas frecuentes
¿Se puede usar GROUP BY sin una función de agregación?
Técnicamente sí, pero pierde su propósito: sin una agregación, GROUP BY solo elimina filas duplicadas en las columnas agrupadas, algo para lo que ya existe DISTINCT.
¿Cuál es la diferencia entre WHERE y HAVING con GROUP BY?
WHERE filtra las filas antes de agrupar; HAVING filtra los grupos ya formados, típicamente sobre el resultado de una agregación, como HAVING COUNT(*) > 10.
¿Cómo se hace un GROUP BY en pandas?
Con df.groupby('columna').agg(...) o con métodos directos como df.groupby('columna')['otra_columna'].sum(), que replican el mismo patrón de agrupar y agregar.