Middle
111
questionbank

Каково назначение операторов PIVOT и UNPIVOT в Transact-SQL?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Операторы PIVOT и UNPIVOT используются для изменения структуры таблиц в Transact-SQL.

PIVOT преобразует уникальные значения из одной колонки (Pivot Column) в новые колонки в выходной таблице. При этом агрегируются строки по значению другой колонки (Grouping Column).

UNPIVOT выполняет обратное действие: преобразует столбцы в строки, фактически "нормализуя" данные из широкой таблицы в более узкую и длинную.

Пример PIVOT:

Предположим, есть таблица Sales с колонками Employee, Year, Amount.

EmployeeYearAmount
Alice2020100
Bob2020150
Alice2021120
Bob2021180

Использование PIVOT для получения годовых продаж по сотрудникам:

sql

Результат:

Employee20202021
Alice100120
Bob150180

Пример UNPIVOT:

Предположим, есть таблица AnnualSales с колонками Employee, [2020], [2021].

Employee20202021
Alice100120
Bob150180

Использование UNPIVOT для преобразования обратно в формат с колонками Year и Amount:

sql

Результат:

EmployeeYearAmount
Alice2020100
Alice2021120
Bob2020150
Bob2021180

Оба оператора используются для упрощения запросов при работе с "широкими" или "узкими" таблицами, предоставляя более удобное для анализа или представления данных форматирование из реляционной структуры.