В orders — заказы доставки еды. У отменённых delivered_at пустой.
Для каждого города верните city, delivered — число доставленных заказов и median_min — медиану времени от created_at до delivered_at в минутах с одним знаком.
Город, где все заказы отменены, тоже покажите: delivered = 0, медиана пустая. При чётном числе заказов медиана — среднее двух средних значений. Порядок по city.
В работе: Сравнение городов по скорости доставки: медиана не ломается от одного заказа, застрявшего на три часа.
Таблицы
orders — одна строка — один заказ
| Колонка | Тип | Что значит |
|---|---|---|
order_id | int | ключ |
city | text | город |
created_at | timestamp | время заказа |
delivered_at | timestamp | время доставки, NULL у отменённых |
Пример: данные
orders · 6 строк
| order_id | city | created_at | delivered_at |
|---|---|---|---|
| 1 | Новосибирск | 2026-02-10T12:00:00 | 2026-02-10T12:31:00 |
| 2 | Новосибирск | 2026-02-10T12:05:00 | 2026-02-10T12:45:00 |
| 3 | Новосибирск | 2026-02-10T13:00:00 | 2026-02-10T13:25:00 |
| 4 | Новосибирск | 2026-02-10T13:10:00 | NULL |
| 5 | Воронеж | 2026-02-10T19:00:00 | 2026-02-10T19:28:00 |
| 6 | Воронеж | 2026-02-10T19:30:00 | 2026-02-10T20:05:00 |
Ожидаемый ответ
| city | delivered | median_min |
|---|---|---|
| Воронеж | 2 | 31,5 |
| Новосибирск | 3 | 31 |
Как проверяем
Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
city, delivered, median_min
Источник: на данных Еды: заказы и время доставки. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.