Войти Регистрация
Data base

60. Доля сессий с дослушанной сказкой

Лёгкая

Главная метрика детского навыка, который сочиняет сказки на умной колонке, — доля сессий, в которых дослушана хотя бы одна сказка. Считается по сессиям, а не по пользователям.

В story_events — события навыка: story_start, story_finish, reply (реплика ребёнка или родителя). Все события одной сессии приходятся на один день.

По каждому дню посчитайте sessions, finished_sessions и finished_pct — процент с 1 знаком. Верните day, sessions, finished_sessions, finished_pct, порядок по day.

В работе: Дашборд продукта: метрика-«северная звезда» навыка и алерт на её резкое падение.

Таблицы

story_events — события навыка

КолонкаТипЧто значит
event_idintключ
session_idintсессия
user_idintпользователь
event_typetextstory_start / story_finish / reply
event_attimestampвремя

Пример: данные

story_events · 11 строк

event_idsession_iduser_idevent_typeevent_at
117story_start2026-09-01T20:00:00
217reply2026-09-01T20:02:00
317story_finish2026-09-01T20:09:00
428story_start2026-09-01T20:30:00
537story_start2026-09-01T21:00:00
637story_finish2026-09-01T21:06:00
737story_start2026-09-01T21:07:00
837story_finish2026-09-01T21:15:00
949story_start2026-09-02T19:40:00
1049story_finish2026-09-02T19:48:00
11510story_start2026-09-02T20:10:00

Ожидаемый ответ

daysessionsfinished_sessionsfinished_pct
2026-09-013266,7
2026-09-022150
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
day, sessions, finished_sessions, finished_pct
условная агрегацияDISTINCTдаты

Источник: статья аналитика SberDevices на Хабре о метриках навыка «Сочини сказку», 2024. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.