Авито: sessionization по 30-мин промежутку

Сложная Сессионизация Avito

Условие задачи

Таблица events(user_id, event_time TEXT в формате "YYYY-MM-DD HH:MM:SS"). Группируйте события в сессии: новая сессия начинается если gap > 30 минут от предыдущего события того же юзера. Выведите user_id, session_id (1, 2, 3...), session_start, session_end, events_count. Сортировка по user_id, session_start.

Схема данных

CREATE TABLE events (id INTEGER PRIMARY KEY, user_id INTEGER, event_time TEXT);

Темы

sessionization LAG window JULIANDAY running sum

Подсказки

Решить в интерактивной SQL-песочнице → ← Все SQL-задачи