В return_events — история статусов возвратов: created, in_transit, received, refunded, rejected. События иногда доезжают с опозданием, поэтому event_id не всегда растёт вместе с changed_at.
Текущий статус возврата — статус из события с наибольшим changed_at; при равном времени — с большим event_id.
Посчитайте, сколько возвратов сейчас в каждом статусе: status, returns. Порядок: по returns от большего, при равенстве по status.
В работе: Утренний дашборд службы возвратов: сколько посылок в пути и сколько ждут денег.
Таблицы
return_events — одна строка — смена статуса
| Колонка | Тип | Что значит |
|---|---|---|
event_id | int | ключ, порядок записи |
return_id | int | возврат |
status | text | новый статус |
changed_at | timestamp | когда статус сменился |
Пример: данные
return_events · 8 строк
| event_id | return_id | status | changed_at |
|---|---|---|---|
| 1 | 9001 | created | 2026-05-01T10:00:00 |
| 2 | 9001 | in_transit | 2026-05-02T09:00:00 |
| 3 | 9001 | received | 2026-05-04T15:00:00 |
| 4 | 9002 | created | 2026-05-02T11:00:00 |
| 5 | 9002 | in_transit | 2026-05-03T08:00:00 |
| 6 | 9003 | created | 2026-05-03T12:00:00 |
| 7 | 9003 | in_transit | 2026-05-04T10:00:00 |
| 8 | 9004 | created | 2026-05-04T18:00:00 |
Ожидаемый ответ
| status | returns |
|---|---|
| in_transit | 2 |
| created | 1 |
| received | 1 |
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
status, returns
Источник: на данных Маркета: история статусов возвратов. Условие пересказано своими словами.
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.