ÎncepețiÎncepe gratuit

Transformarea rândurilor în coloane

În această lecție, ai aflat că PIVOT transformă valorile unice dintr-o coloană în mai multe coloane.

Analizând datele din paper_shop_monthly_sales, observi că structura acestui tabel nu este potrivită pentru raportul pe care vrei să îl creezi.

Vrei să generezi un raport cu următoarea structură:

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

Cu alte cuvinte, vrei să convertești datele din rânduri în coloane și să însumezi unitățile pentru fiecare an.

Așa cum ai aflat din exercițiile anterioare, numele produselor și unitățile trebuie separate. Acest lucru se realizează în subinterogare – aruncă o privire asupra ei.

Acest exercițiu face parte din cursul

Curățarea datelor în bazele de date SQL Server

Vezi cursul

Instrucțiuni pentru exercițiu

  • Selectează coloanele pivotate pentru fiecare produs.
  • Include suma unităților în interiorul operatorului PIVOT.
  • După instrucțiunea FOR, include numele coloanei care conține valorile ce vor deveni antete de coloană.
  • Dă operatorului PIVOT numele paper_shop_pivot.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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 ___
Editează și rulează codul