Магия представления

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

Магия представления

В канале Аналитика 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 я как раз разбираю такие вещи - простым языком, но с реальным смыслом.

Подписывайся!