SQL Senior Оконные функции обновлено

Разбиение кликов на сессии

Условие

Новая сессия пользователя начинается, если с его предыдущего события прошло больше 30 минут (или это его первое событие). Для каждой сессии выведи пользователя, номер сессии по порядку (с 1), время начала и число событий.

Колонки: user_id, session_no, started_at, events. Порядок строк не важен.

Как подойти

Подсказки: 2
  1. Отметь флагом события, с которых начинается новая сессия (LAG).
  2. Нарастающая сумма флагов даёт номер сессии.

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

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

Термины по теме