IOKELU
Nivel: Avanzado
💡 Prueba las transformaciones:
Puedes ejecutar cualquier consulta PIVOT o UNPIVOT en nuestra consola interactiva: Abrir consola SQL →

Pivot y Unpivot en SQL: transformar filas en columnas y columnas en filas

Las operaciones PIVOT y UNPIVOT permiten reorganizar datos para análisis avanzados. Son esenciales para reportes, dashboards y estructuras dinámicas.

1. ¿Qué es PIVOT?

PIVOT transforma filas en columnas. Ideal para reportes donde cada categoría debe ser una columna.

2. Ejemplo de PIVOT


SELECT *
FROM ventas
PIVOT (
    SUM(cantidad)
    FOR mes IN ('Enero', 'Febrero', 'Marzo')
);
    

Esto convierte los meses en columnas y muestra la suma de ventas por cada uno.

3. ¿Qué es UNPIVOT?

UNPIVOT transforma columnas en filas. Útil para normalizar datos o preparar información para análisis.

4. Ejemplo de UNPIVOT


SELECT *
FROM ventas_mensuales
UNPIVOT (
    cantidad FOR mes IN (enero, febrero, marzo)
);
    

5. Pivot manual con CASE


SELECT
    producto,
    SUM(CASE WHEN mes = 'Enero' THEN cantidad ELSE 0 END) AS enero,
    SUM(CASE WHEN mes = 'Febrero' THEN cantidad ELSE 0 END) AS febrero,
    SUM(CASE WHEN mes = 'Marzo' THEN cantidad ELSE 0 END) AS marzo
FROM ventas
GROUP BY producto;
    

6. Ejercicios para practicar

7. Mini‑proyecto: Reporte dinámico de ventas


SELECT *
FROM ventas
PIVOT (
    SUM(cantidad)
    FOR categoria IN ('Ropa','Electrónica','Hogar')
);
    

8. Errores comunes

9. Preguntas frecuentes

¿PIVOT funciona en todas las bases?

Sí, aunque la sintaxis puede variar ligeramente.

¿UNPIVOT es útil para ETL?

Mucho, especialmente para normalizar datos.


Siguiente guía

SQL Avanzado – Transacciones →