Menu
Coddy logo textTech

Pivotar filas a 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 SQL de una tabla dinámica de hoja de cálculo.

Supongamos 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 month

El GROUP BY que cada SUM(CASE …) ve son las filas de un mes; el CASE selecciona la porción para un producto.

challenge icon

Desafío

Fácil

Tablas y columnas disponibles:

  • <strong>sales</strong>: <strong>month</strong>, <strong>product</strong>, <strong>units</strong>

Pivota los datos para que cada fila sea un month con estas columnas:

  • month
  • apples: units totales para el producto 'apples' ese mes
  • bananas: lo mismo para 'bananas'
  • cherries: lo mismo para 'cherries'
  • total: units totales de todos los productos 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 por meses con total >= 20
ORDER BY month
quiz iconPonte a prueba

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