ьзуют CASE или PIVOT (в поддерживаемых СУБД). Пример с CASE (универсальный способ):
SELECT
product_category,
SUM(CASE WHEN year = 2022 THEN revenue ELSE 0 END) AS revenue_2022,
SUM(CASE WHEN year = 2023 THEN revenue ELSE 0 END) AS revenue_2023
FROM sales
GROUP BY product_category;
Группирует выручку по категориям товаров с разбивкой по годам.
Пример с PIVOT (SQL Server, Oracle):
SELECT *
FROM (
SELECT product_category, year, revenue
FROM sales
) AS source
PIVOT (
SUM(revenue) FOR year IN ([2022], [2023])
) AS pivot_table;
Аналогичный результат, но с использованием встроенного оператора.
Для динамического свода (когда столбцы заранее неизвестны) потребуется динамический SQL.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12