Agrupación y Agregación en SQL
Desliza para mostrar el menú
La agregación en SQL utiliza la cláusula GROUP BY para organizar los datos sin procesar en filas de resumen. Al emplear funciones como SUM(), AVG() y COUNT(), es posible transformar millones de filas en métricas empresariales útiles directamente dentro de una celda SQL.
Para muchos, SQL es el lenguaje más natural para resumir datos. La sintaxis es muy legible y sigue un flujo lógico: seleccionar las categorías, elegir los cálculos y definir los grupos. En este capítulo, se utilizará la vista temporal creada anteriormente para realizar las mismas agregaciones que en Python, pero con la simplicidad de SQL.
La cláusula GROUP BY
En SQL, cualquier columna que no esté siendo "resumida matemáticamente" debe incluirse en la instrucción GROUP BY al final de la consulta. Esto indica al motor de SQL exactamente cómo segmentar los datos.
SELECT cut, COUNT(*)
FROM diamond_view
GROUP BY cut
Uso de funciones agregadas integradas
SQL proporciona varias funciones estándar para realizar cálculos en columnas numéricas:
- SUM(): suma todos los valores de la columna;
- AVG(): calcula la media/promedio;
- MIN() / MAX(): encuentra el valor más bajo o más alto;
- COUNT(): devuelve el número de filas.
%sql
SELECT
cut,
SUM(x),
AVG(y)
FROM diamond_view
GROUP BY cut
Alias para informes profesionales
De forma predeterminada, SQL puede etiquetar tus columnas de resultados como sum(Total_Profit). Para que tu salida sea adecuada para un panel empresarial, utiliza la palabra clave AS para renombrar estas columnas con descripciones más claras.
%sql
SELECT
cut,
SUM(x) AS Total_Length,
MAX(y) AS Highest_Diamond_Value
FROM diamond_view
GROUP BY cut
Filtrado de datos agregados: la cláusula HAVING
Un error común es intentar filtrar un resultado agregado usando WHERE. En SQL, WHERE filtra filas individuales antes de que se agrupen. Si deseas filtrar los resultados después de haber realizado la suma (por ejemplo, para mostrar solo las regiones con más de $1,000,000 en ganancias), debes utilizar la cláusula HAVING.
%sql
SELECT cut, SUM(x) AS Total_Length
FROM diamond_view
GROUP BY cut
HAVING Total_Length > 4000
Ordenar el Resumen
Para destacar los análisis, siempre utilizar ORDER BY. Esto permite clasificar los resultados, como mostrar las regiones más rentables en la parte superior de la tabla.
%sql
SELECT cut, SUM(x) AS Total_Length
FROM diamond_view
GROUP BY cut
ORDER BY Total_Length DESC
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla