Convertir filas en columnas
Parte de la sección Más allá de lo básico del Journey de SQL de Coddy. Lección 14 de 27.
Combina la agregación condicional con GROUP BY para convertir filas en columnas. Es la versión de SQL de una tabla dinámica de una hoja de cálculo.
Supón que sales tiene filas como (month, product, units). Para ver una fila por mes con una columna por producto:
SELECT
month,
SUM(CASE WHEN product = 'A' THEN units ELSE 0 END) AS product_a,
SUM(CASE WHEN product = 'B' THEN units ELSE 0 END) AS product_b
FROM sales
GROUP BY monthEl grupo de GROUP BY que ve cada SUM(CASE …) son las filas de un month; CASE selecciona el segmento de un product.
Desafío
FácilTablas y columnas disponibles:
sales:month,product,units
Transforma los datos para que cada fila corresponda a un month con estas columnas:
monthapples: total deunitspara el producto'apples'de ese mesbananas: lo mismo para'bananas'cherries: lo mismo para'cherries'total: total deunitsde todos los productos de ese mes
Devuelve solo los meses cuyo total sea al menos 20. Ordena por month.
Pruébalo tú mismo
SELECT month,
-- un SUM(CASE ...) por producto, más el total
FROM sales
GROUP BY month
-- filtrar a los meses con total >= 20
ORDER BY month
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Más allá de lo básico
2Funciones de cadenas
LENGTH, UPPER, LOWERSUBSTRINSTRREPLACE y TRIMConcatenar con ||Repaso - Facturas3Agregación condicional
COUNT con CASESUM con CASEConvertir filas en columnasRepaso: fuentes de tráficoPractica por tu cuenta: Playground de SQL