Kom igångKom igång gratis

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

Visa kurs

Ö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 namnet paper_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 ___
Redigera och kör kod