🔁 SQL Pivot: Как работает этот мощный инструмент анализа данных?

sql pivot - это операция в SQL, которая позволяет преобразовывать строки таблицы в столбцы, основываясь на заданном условии.

Чтобы использовать операцию pivot, необходимо знать название столбца, который будет использоваться в качестве основы для создания новых столбцов. Также нужно указать значения, которые будут преобразованы в новые столбцы.

Рассмотрим пример:

CREATE TABLE sales (
  product_id INT,
  year INT,
  month INT,
  revenue DECIMAL(10, 2)
);

INSERT INTO sales (product_id, year, month, revenue)
VALUES (1, 2020, 1, 1000),
       (1, 2020, 2, 1500),
       (2, 2020, 1, 2000),
       (2, 2020, 2, 2500);

SELECT *
FROM sales
PIVOT (
  SUM(revenue)
  FOR month IN (1, 2)
) AS pivot_table;

В этом примере у нас есть таблица sales, которая содержит информацию о продажах. Мы хотим преобразовать строки таблицы в столбцы, чтобы получить динамику продаж по месяцам для каждого продукта.

Операция pivot использует ключевое слово PIVOT и указывает столбец, который будет использоваться для создания новых столбцов (month в данном случае). Затем мы указываем значения столбца, которые будут преобразованы в новые столбцы (1 и 2).

Результат выполнения запроса будет выглядеть следующим образом:

product_id | year | 1       | 2
------------------------------
1          | 2020 | 1000    | 1500
2          | 2020 | 2000    | 2500

Таким образом, операция pivot позволяет нам преобразовывать строки в столбцы на основе заданных условий и получать более удобную для анализа таблицу.

Детальный ответ

SQL PIVOT: Как это работает?

Приветствую! В этой статье мы поговорим об операторе PIVOT в языке SQL и разберем, как он работает.

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

Пример использования

Давайте рассмотрим пример, чтобы лучше понять, как работает оператор PIVOT. Предположим, у нас есть следующая таблица "Продажи":


CREATE TABLE Sales (
    Product VARCHAR(10),
    Region VARCHAR(10),
    Quantity INT
);

INSERT INTO Sales (Product, Region, Quantity)
VALUES ('Product A', 'Region 1', 10),
       ('Product A', 'Region 2', 15),
       ('Product B', 'Region 1', 5),
       ('Product B', 'Region 2', 20);

Мы хотим преобразовать эту таблицу таким образом, чтобы строки столбца "Product" стали столбцами:

Region Product A Product B
Region 1 10 5
Region 2 15 20

Чтобы это сделать, мы можем использовать оператор PIVOT в следующем запросе:


SELECT Region, [Product A], [Product B]
FROM
(
    SELECT Product, Region, Quantity
    FROM Sales
) AS SourceTable
PIVOT
(
    SUM(Quantity)
    FOR Product IN ([Product A], [Product B])
) AS PivotTable;

В результате запроса мы получим желаемую таблицу, где каждый столбец представляет отдельный продукт, а каждая строка представляет регион и количество проданного товара.

Как это работает?

Когда мы используем оператор PIVOT, мы должны указать агрегатную функцию, которая будет применяться к данным после поворота. В нашем примере мы использовали функцию SUM, чтобы сложить количество проданных товаров.

Далее мы указываем, по какому столбцу нужно делать поворот. В нашем случае это столбец "Product". Затем мы указываем все значения этого столбца, которые мы хотим превратить в столбцы. В этом примере это "[Product A], [Product B]".

Мы также указываем исходную таблицу данных и псевдоним для нее. В нашем случае это "SourceTable".

Наконец, мы используем оператор AS для указания имени для результирующей таблицы после поворота. В нашем случае это "PivotTable".

Таким образом, оператор PIVOT позволяет нам легко преобразовать строки таблицы в столбцы и применять агрегатные функции к этим данным.

Заключение

В этой статье мы обсудили оператор PIVOT в языке SQL и разобрали, как он работает. Мы рассмотрели пример использования и объяснили каждую часть запроса. Теперь, когда вы знаете, как использовать оператор PIVOT, вы можете легко преобразовывать строки таблицы в столбцы и применять агрегатные функции к данным.

Надеюсь, эта статья была полезной! Успехов в изучении SQL!

Видео по теме

Урок 4.SQL advanced. Pivot, переворачиваем запрос с группировкой

MS SQL Server. Работа с несколькими таблицами. 10. Оператор Pivot

Операторы PIVOT и UNPIVOT языка T-SQL - видеокурс «T-SQL. Уровень 3 - Эксперт» - пример видеоурока

Похожие статьи:

Где в SQL найти информацию?

Где использовать функцию iif в SQL

Где найти примеры SQL с несколькими условиями

🔁 SQL Pivot: Как работает этот мощный инструмент анализа данных?

Когда и где использовать SQL