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

76. Сессии покупателя по логу кликов

Сложная

В clicks — клики покупателей в приложении. Трекер иногда присылает один и тот же клик дважды — строки полностью совпадают; такие дубли считаем одним кликом.

Новая сессия начинается, если с предыдущего клика того же покупателя прошло больше 30 минут. Ровно 30 минут — та же сессия.

Для каждого покупателя верните user_id, sessions, avg_minutes — среднюю длительность сессии (от первого до последнего клика) в минутах с 1 знаком, max_clicks — максимум кликов в одной сессии. Порядок — по user_id.

В работе: Продуктовая аналитика: глубина просмотра каталога и база для метрик «сессий до заказа».

Таблицы

clicks — сырой лог, бывают полные дубли

КолонкаТипЧто значит
user_idintпокупатель
event_attimestampвремя клика
pagetextэкран

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

clicks · 6 строк

user_idevent_atpage
12026-10-01T10:00:00main
12026-10-01T10:10:00catalog
12026-10-01T10:25:00card
12026-10-01T11:30:00main
12026-10-01T11:35:00cart
22026-10-01T09:00:00main

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

user_idsessionsavg_minutesmax_clicks
12153
2101
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
user_id, sessions, avg_minutes, max_clicks
сессииоконные функциинарастающий итогдедупликация

Источник: на данных Wildberries, по мотивам открытой подборки вопросов. Условие пересказано своими словами.

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