В views — просмотры карточек. Сессия пользователя заканчивается, если до следующего просмотра прошло больше 30 минут; пауза ровно 30 минут сессию не разрывает. Сессия может переходить через полночь. Иногда один просмотр записан дважды с одинаковым временем — это всё равно один и тот же момент в сессии.
Для каждого пользователя верните user_id, sessions — число сессий, max_views — наибольшее число строк просмотров в одной сессии (дубли считаем как есть). Порядок — по user_id.
В работе: Продуктовые метрики поиска: сколько объявлений человек листает за один заход.
Таблицы
views — одна строка — один просмотр
| Колонка | Тип | Что значит |
|---|---|---|
view_id | int | ключ |
user_id | int | пользователь |
listing_id | int | объявление |
viewed_at | timestamp | время |
Пример: данные
views · 6 строк
| view_id | user_id | listing_id | viewed_at |
|---|---|---|---|
| 1 | 101 | 5001 | 2026-07-01T10:00:00 |
| 2 | 101 | 5002 | 2026-07-01T10:10:00 |
| 3 | 101 | 5003 | 2026-07-01T10:25:00 |
| 4 | 101 | 5004 | 2026-07-01T12:00:00 |
| 5 | 102 | 5001 | 2026-07-01T09:00:00 |
| 6 | 102 | 5005 | 2026-07-01T09:20:00 |
Ожидаемый ответ
| user_id | sessions | max_views |
|---|---|---|
| 101 | 2 | 3 |
| 102 | 1 | 2 |
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
user_id, sessions, max_views
Источник: на данных Авито: просмотры объявлений. Условие пересказано своими словами.
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.