Фрея сказала это Ладе на встрече по договору «Монетки», а в тот же вечер Бран прислал похожее.
Два заказчика просят одного: ответ, который видно глазами, а не вычитывается по строкам. Начнём с Брана: его вопрос маленький, а приём тот же, что понадобится для экрана Фреи.
Почти весь курс мы отвечали заказчикам таблицами и цифрами, а в блоке про Python рисовали графики по выгрузкам. Блок K про то, как превращать результат запроса в картинку прямо там, где он посчитан, без выгрузок: графики, вычисляемые поля и дашборды. Инструмент тот же: SQL-песочница, у которой есть вкладка «График». Сегодня разберём, зачем нужен график и как выбрать его форму под вопрос.
Таблица прячет, линия показывает
Посчитаем то, что выгрузил Бран: сколько часов игроки провели в игре в каждый день с 25 марта по 19 апреля.
SELECT started_at::date AS day,
count(DISTINCT player_id) AS dau,
round(sum(extract(epoch FROM ended_at - started_at)) / 3600, 1) AS hours
FROM sessions
WHERE started_at >= '2026-03-25' AND started_at < '2026-04-20'
GROUP BY day
ORDER BY day;
day | dau | hours
------------+-----+-------
2026-03-25 | 171 | 129.7
2026-03-26 | 157 | 123.4
...
2026-04-02 | 144 | 127.7
2026-04-03 | 155 | 166.5
2026-04-04 | 179 | 218.5
...
2026-04-11 | 195 | 255.2
2026-04-12 | 176 | 200.7
2026-04-13 | 160 | 169.5
2026-04-14 | 164 | 145.8
В таблице 26 строк, и чтобы заметить закономерность, нужно держать в голове все числа сразу. Человек так не умеет: он сравнивает соседние строки, а общую форму не видит. А теперь представь те же часы линией. До 2 апреля она гуляет в коридоре 110-160 часов, 3 апреля прыгает вверх, десять дней держится на уровне 200-255 и 13-14 апреля так же резко возвращается. Это плато, и глаз находит его за секунду.
Что это за плато, мы уже знаем из урока про DAU: четыре бота farm…x сидели в игре по 24 часа в сутки ровно десять дней. Число игроков в те же дни почти не изменилось: на плато dau от 150 до 195, до него от 144 до 190. Поэтому в таблице DAU аномалию не видно совсем, а на линии часов она бросается в глаза.
Что видно на графике
График отвечает на вопросы, на которые таблица отвечает плохо:
- форма во времени: тренд, сезонность, ступенька, плато, разовый выброс;
- сравнение: какой из пяти классов популярнее и насколько, без вычитания в уме;
- доли: из чего складывается целое;
- распределение: где большинство значений и есть ли длинный хвост.
А вот на вопрос «сколько ровно» график отвечает хуже таблицы. Если Брану нужна одна цифра, «выручка за июнь 70 564 ₽», рисовать ничего не надо: напиши её крупно. График без вопроса это шум.
урок из курса
Урок из курса «Аналитика данных с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.