ПочатиПочніть безкоштовно

Перетворення рядків на стовпці

У цьому уроці ви дізналися, що PIVOT перетворює унікальні значення з одного стовпця на кілька стовпців.

Аналізуючи дані paper_shop_monthly_sales, ви розумієте, що структура цієї таблиці не підходить для звіту, який ви хочете створити.

Ви хочете згенерувати звіт такого вигляду:

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

Іншими словами, ви хочете перетворити дані з рядків на стовпці та підсумувати кількість одиниць для кожного року.

Як ви бачили в попередніх вправах, назву товару та кількість одиниць потрібно розділити. Це робиться в підзапиті — перегляньте його.

Ця вправа є частиною курсу

Очищення даних у базах даних SQL Server

Переглянути курс

Інструкції до вправи

  • Виберіть стовпці після PIVOT для кожного товару.
  • Додайте суму одиниць усередині оператора PIVOT.
  • Після оператора FOR вкажіть назву стовпця, значення якого стануть заголовками стовпців.
  • Присвойте оператору PIVOT ім'я paper_shop_pivot.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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 ___
Редагувати та запускати код