В deliveries у заказа есть обещанная дата promised_date и момент приезда в пункт выдачи arrived_at. Если заказ так и не приехал, arrived_at равен NULL — такой заказ считается опоздавшим.
Заказ приехал в срок, если arrived_at не позже конца обещанного дня (например, 21:40 в обещанный день — в срок).
Для заказов с обещанной датой в декабре 2025 года верните по городам ПВЗ: city, orders, on_time, on_time_pct — процент с одним знаком. Порядок — от худшего города к лучшему по on_time_pct, при равенстве — по city.
В работе: Еженедельный разбор логистики: в каких городах обещание срока не выполняется.
Таблицы
pvz — пункты выдачи
| Колонка | Тип | Что значит |
|---|---|---|
pvz_id | int | ключ |
city | text | город |
address | text | адрес |
deliveries — доставки заказов в ПВЗ
| Колонка | Тип | Что значит |
|---|---|---|
order_id | int | ключ |
pvz_id | int | пункт выдачи |
promised_date | date | обещанная дата |
arrived_at | timestamp | приезд в ПВЗ, NULL — не приехал |
Пример: данные
pvz · 3 строки
| pvz_id | city | address |
|---|---|---|
| 1 | Самара | ул. Ново-Садовая, 106 |
| 2 | Самара | Московское ш., 41 |
| 3 | Томск | пр. Ленина, 80 |
deliveries · 6 строк
| order_id | pvz_id | promised_date | arrived_at |
|---|---|---|---|
| 1 | 1 | 2025-12-03 | 2025-12-02T14:00:00 |
| 2 | 1 | 2025-12-03 | 2025-12-04T09:00:00 |
| 3 | 2 | 2025-12-05 | 2025-12-05T11:00:00 |
| 4 | 3 | 2025-12-10 | 2025-12-09T10:00:00 |
| 5 | 3 | 2025-12-10 | 2025-12-12T10:00:00 |
| 6 | 3 | 2025-12-11 | 2025-12-11T08:00:00 |
Ожидаемый ответ
| city | orders | on_time | on_time_pct |
|---|---|---|---|
| Самара | 3 | 2 | 66,7 |
| Томск | 3 | 2 | 66,7 |
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
city, orders, on_time, on_time_pct
Источник: на данных Ozon: доставка в пункты выдачи. Условие пересказано своими словами.
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.