Začněte nyníZačněte zdarma

Převod řádků na sloupce

V této lekci ses naučil/a, že PIVOT převádí unikátní hodnoty z jednoho sloupce do více sloupců.

Při analýze dat tabulky paper_shop_monthly_sales zjistíš, že její struktura není vhodná pro sestavu, kterou chceš vytvořit.

Chceš vygenerovat sestavu s tímto vzhledem:

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

Jinak řečeno, chceš přesunout data z řádků do sloupců a sečíst počty kusů za každý rok.

Jak sis osvojil/a z předchozích cvičení, název produktů a počty kusů je potřeba nejprve rozdělit. To se provádí v poddotazu – podívej se na něj.

Toto cvičení je součástí kurzu

Cleaning Data in SQL Server Databases

Zobrazit kurz

Pokyny k cvičení

  • Vyber pivotované sloupce pro každý produkt.
  • Do operátoru PIVOT zahrň součet jednotek.
  • Za příkaz FOR uveď název sloupce, jehož hodnoty se stanou záhlavími sloupců.
  • Operátoru PIVOT přiřaď název paper_shop_pivot.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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 ___
Upravit a spustit kód