Omvandla rader till kolumner
I den här lektionen lärde du dig att PIVOT omvandlar unika värden från en kolumn till flera kolumner.
När du analyserar data i paper_shop_monthly_sales inser du att tabellens struktur inte passar för den rapport du vill skapa.
Du vill generera en rapport med följande utseende:
|year_of_sale|notebooks|pencils|crayons|
|------------|---------|-------|-------|
| 2018 | 150 | 150 | 80 |
| 2019 | 230 | 130 | 170 |
Med andra ord vill du omvandla data från rader till kolumner och summera antalet enheter per år.
Som du lärde dig i tidigare övningar måste produktnamnen och enheterna delas upp. Det görs i underfrågan – ta en titt på den.
Den här övningen är en del av kursen
Rensa data i SQL Server-databaser
Övningsinstruktioner
- Välj de pivoterade kolumnerna för varje produkt.
- Inkludera summan av enheterna inuti
PIVOT-operatorn. - Lägg till namnet på den kolumn vars värden ska bli kolumnrubriker efter
FOR-satsen. - Ge
PIVOT-operatorn namnetpaper_shop_pivot.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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 ___