ComenzarEmpieza gratis

Convertir filas en columnas

En esta lección, has aprendido que PIVOT convierte los valores únicos de una columna en varias columnas.

Al analizar los datos de paper_shop_monthly_sales, te das cuenta de que la estructura de esta tabla no es adecuada para el informe que quieres crear.

Quieres generar un informe con este aspecto:

|year_of_sale|notebooks|pencils|crayons|
|------------|---------|-------|-------|
| 2018       | 150     | 150   | 80    |
| 2019       | 230     | 130   | 170   |

En otras palabras, quieres pasar los datos que tienes en filas a datos en columnas y sumar las unidades de cada año.

Como aprendiste en los ejercicios anteriores, el nombre de los productos y las unidades debe separarse. Esto se hace en la subconsulta; échale un vistazo.

Este ejercicio forma parte del curso

Limpieza de datos en bases de datos SQL Server

Ver curso

Instrucciones del ejercicio

  • Selecciona las columnas pivotadas para cada producto.
  • Incluye la suma de las unidades dentro del operador PIVOT.
  • Después de la cláusula FOR, incluye el nombre de la columna que contiene los valores que se convertirán en encabezados de columna.
  • Asigna al operador PIVOT el nombre paper_shop_pivot.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

SELECT
	year_of_sale,
    -- Select the pivoted columns
	___, 
	___, 
	___
FROM
   (SELECT 
		SUBSTRING(product_name_units, 1, charindex('-', product_name_units)-1) product_name, 
		CAST(SUBSTRING(product_name_units, charindex('-', product_name_units)+1, len(product_name_units)) AS INT) units,	
		year_of_sale
	FROM paper_shop_monthly_sales) sales
-- Sum the units for column that contains the values that will be column headers
PIVOT (SUM(___) FOR ___ IN (notebooks, pencils, crayons))
-- Give the alias name
AS ___
Editar y ejecutar código