Отчёт строится на 20 октября 2026 года 00:00. Посылка лежит в ПВЗ, если picked_at и returned_at пустые. Просрочена — если она лежит и пришла раньше 13 октября 2026 года 00:00, то есть хранится больше 7 суток.
Для каждого ПВЗ из pickup_points верните pvz_id, city и overdue — число просроченных посылок, у ПВЗ без них 0. Порядок — по overdue по убыванию, затем по pvz_id.
В работе: Утренний список для менеджера ПВЗ: что пора отправить обратно на склад и освободить ячейки.
Таблицы
pickup_points — пункты выдачи
| Колонка | Тип | Что значит |
|---|---|---|
pvz_id | int | ключ |
city | text | город |
address | text | адрес |
parcels — посылки в ПВЗ
| Колонка | Тип | Что значит |
|---|---|---|
parcel_id | int | ключ |
pvz_id | int | ПВЗ |
arrived_at | timestamp | поступила |
picked_at | timestamp | забрана, NULL — нет |
returned_at | timestamp | отправлена обратно, NULL — нет |
Пример: данные
pickup_points · 3 строки
| pvz_id | city | address |
|---|---|---|
| 1 | Краснодар | ул. Северная, 310 |
| 2 | Ростов-на-Дону | Ворошиловский пр., 52 |
| 3 | Воронеж | ул. Плехановская, 9 |
parcels · 7 строк
| parcel_id | pvz_id | arrived_at | picked_at | returned_at |
|---|---|---|---|---|
| 1 | 1 | 2026-10-05T14:00:00 | NULL | NULL |
| 2 | 1 | 2026-10-10T09:00:00 | 2026-10-12T18:00:00 | NULL |
| 3 | 1 | 2026-10-01T11:00:00 | NULL | 2026-10-08T20:00:00 |
| 4 | 1 | 2026-10-12T23:59:00 | NULL | NULL |
| 5 | 1 | 2026-10-13T00:00:00 | NULL | NULL |
| 6 | 2 | 2026-10-02T16:00:00 | NULL | NULL |
| 7 | 3 | 2026-10-15T10:00:00 | NULL | NULL |
Ожидаемый ответ
| pvz_id | city | overdue |
|---|---|---|
| 1 | Краснодар | 2 |
| 2 | Ростов-на-Дону | 1 |
| 3 | Воронеж | 0 |
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
pvz_id, city, overdue
Источник: на данных Wildberries: пункты выдачи и сроки хранения. Условие пересказано своими словами.
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.