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
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
PIVOTnumelepaper_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 ___