Или превращение длинной таблицы в широкую

В канале Аналитика FM я часто про это пишу – потому что аналитика заканчивается не на запросе, а на том, как ты показал результат.
Подписывайся!
Представь, у тебя есть данные:
| user_id | metric | value |
| ———– | ————- | ——– |
| 1 | revenue | 100 |
| 1 | orders | 2 |
Это длинная таблица.
Она удобна для хранения:
-
гибкая
-
легко добавлять новые метрики
-
хорошо ложится в модели данных
Но попробуй быстро понять:
-
кто сколько потратил
-
у кого сколько заказов
-
и сравнить это между собой
Неудобно.
А теперь та же информация:
| user_id | revenue | orders |
| ———— | ————- | ———- |
| 1 | 100 | 2 |
Это широкая таблица.
И вот тут уже:
-
метрики рядом
-
сравнение – в одну секунду
-
можно считать новые показатели
Что значит “превратить длинную таблицу в широкую”
Это значит:
взять значения из строк и разложить их по колонкам
То есть:
-
metric → становится названиями колонок
-
value → становится значениями в этих колонках
Ты буквально “разворачиваешь” данные.
Причём здесь pivot table
На самом деле, это и есть pivot.
Слово pivot – это “поворот”.
Ты поворачиваешь таблицу так, чтобы:
-
строки стали колонками
-
данные стали наглядными
Если ты работал в Excel – ты это уже делал:
сводная таблица = pivot table.
В SQL это можно реализовать так:
SELECT
user_id,
SUM(CASE WHEN metric = ‘revenue' THEN value END) AS revenue,
SUM(CASE WHEN metric = ‘orders' THEN value END) AS orders
FROM table
GROUP BY user_id;
Зачем это вообще нужно
Потому что аналитика – это не про “достать данные”.
Это про сделать их понятными.
Широкая таблица нужна, когда ты:
-
строишь отчёт
-
показываешь результат бизнесу
-
считаешь метрики между собой
Длинная таблица – когда:
-
хранишь данные
-
работаешь с событиями
-
строишь модели
Где чаще всего ошибаются
Самая частая ошибка – пытаться всё делать в широком формате.
Это ломает гибкость:
-
добавилась новая метрика → переписывай запрос
-
данные перестают масштабироваться
Правильный подход:
-
храним – в длинном виде
-
показываем – в широком
Длинная таблица – это про хранение
Широкая таблица – это про понимание
И pivot – это просто инструмент, который помогает перейти от одного к другому.
И если ты хочешь не просто писать SQL, а реально чувствовать данные и понимать, как их правильно показывать,
в Аналитика FM я как раз разбираю такие вещи – простым языком, но с реальным смыслом.


