SQL Middle SQL дата-инженера спрашивают часто обновлено

Сессионизация кликстрима

Условие

Разбейте события пользователей на сессии: новая сессия начинается, если с предыдущего события пользователя прошло больше 30 минут. Для каждой сессии выведите user_id, session_no (номер сессии пользователя с 1 по времени), started_at, ended_at, events. Сортировка по user_id, session_no. Порядок строк важен.

Как подойти

Подсказки: 1
  1. LAG(ts) по пользователю, флаг новой сессии, нарастающая сумма флагов.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.