В orders — заказы такси: user_id, city, время заказа order_dttm. Ночной считаем поездку, заказанную с 22:00:00 включительно до 06:00:00 не включая: 05:59 — ночь, 06:00 — уже утро.
Для каждого города выведите трёх пользователей с наибольшим числом ночных поездок. Если на третьем месте ничья, выводите всех, кто его делит. Пользователи без ночных поездок в рейтинг не входят. Верните city, user_id, night_rides, порядок — city, затем night_rides по убыванию, затем user_id.
В оригинальном тестовом просили топ-100; у нас данных меньше, поэтому топ-3.
В работе: Отбор аудитории для ночного тарифа или промокода на поздние поездки.
Таблицы
orders — одна строка — один заказ
| Колонка | Тип | Что значит |
|---|---|---|
order_id | int | ключ |
user_id | int | пользователь |
city | text | город |
order_dttm | timestamp | время заказа |
Пример: данные
orders · 16 строк
| order_id | user_id | city | order_dttm |
|---|---|---|---|
| 1 | 101 | Казань | 2025-11-01T23:10:00 |
| 2 | 101 | Казань | 2025-11-02T01:00:00 |
| 3 | 101 | Казань | 2025-11-03T05:59:00 |
| 4 | 101 | Казань | 2025-11-03T12:00:00 |
| 5 | 102 | Казань | 2025-11-01T22:00:00 |
| 6 | 102 | Казань | 2025-11-02T04:30:00 |
| 7 | 102 | Казань | 2025-11-02T06:00:00 |
| 8 | 103 | Казань | 2025-11-04T22:45:00 |
| 9 | 103 | Казань | 2025-11-05T00:15:00 |
| 10 | 106 | Казань | 2025-11-05T02:20:00 |
| 11 | 106 | Казань | 2025-11-06T23:30:00 |
| 12 | 104 | Казань | 2025-11-06T03:00:00 |
| 13 | 104 | Казань | 2025-11-06T06:30:00 |
| 14 | 105 | Казань | 2025-11-07T15:00:00 |
| 15 | 201 | Пермь | 2025-11-01T23:59:59 |
| 16 | 202 | Пермь | 2025-11-02T06:00:00 |
Ожидаемый ответ
| city | user_id | night_rides |
|---|---|---|
| Казань | 101 | 3 |
| Казань | 102 | 2 |
| Казань | 103 | 2 |
| Казань | 106 | 2 |
| Пермь | 201 | 1 |
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
city, user_id, night_rides
Источник: тестовое продуктового аналитика (Middle) в Wildberries, сборник No Data No Growth, 2025. Условие пересказано своими словами.
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.