SQL Senior Оконные функции обновлено
Разбиение кликов на сессии
Условие
Новая сессия пользователя начинается, если с его предыдущего события прошло больше 30 минут (или это его первое событие). Для каждой сессии выведи пользователя, номер сессии по порядку (с 1), время начала и число событий.
Колонки: user_id, session_no, started_at, events. Порядок строк не важен.
Как подойти
Подсказки: 2
- Отметь флагом события, с которых начинается новая сессия (
LAG). - Нарастающая сумма флагов даёт номер сессии.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Термины по теме
Ещё по теме «Оконные функции»
- Через сколько дней второй заказ
- Какие дубли удалить, оставив свежую запись
- Самый высоко- и низкооплачиваемый в отделе
- Самая длинная серия дней подряд
- Рост выручки к прошлому месяцу
- Скользящее среднее выручки за 3 дня
- Разница выручки с прошлым днём
- Нарастающий итог продаж