В app_events — открытия экранов мобильного банка. Сессия — это события одного пользователя, где пауза между соседними не больше 30 минут; пауза больше 30 минут начинает новую сессию.
Длительность сессии — минуты от первого до последнего события (сессия из одного события длится 0 минут). События иногда пишутся дважды с одним временем.
Для каждого пользователя верните user_id, sessions и avg_minutes — среднюю длительность сессии с 1 знаком. Порядок — по user_id.
В работе: Продуктовый отчёт: как часто и как долго клиенты заходят в приложение после редизайна главного экрана.
Таблицы
app_events — одна строка — открытие экрана
| Колонка | Тип | Что значит |
|---|---|---|
user_id | int | пользователь |
event_at | timestamp | время события |
screen | text | экран: главная, платежи, переводы, кешбэк |
Пример: данные
app_events · 6 строк
| user_id | event_at | screen |
|---|---|---|
| 101 | 2025-11-05T09:00:00 | главная |
| 101 | 2025-11-05T09:10:00 | платежи |
| 101 | 2025-11-05T09:25:00 | главная |
| 101 | 2025-11-05T13:00:00 | переводы |
| 101 | 2025-11-05T13:04:00 | главная |
| 102 | 2025-11-05T20:00:00 | кешбэк |
Ожидаемый ответ
| user_id | sessions | avg_minutes |
|---|---|---|
| 101 | 2 | 14,5 |
| 102 | 1 | 0 |
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
user_id, sessions, avg_minutes
Источник: на данных мобильного приложения: события экранов. Условие пересказано своими словами.
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.