Войти Регистрация
Data base

94. Медианное время доставки Еды по городам

Средняя

В orders — заказы доставки еды. У отменённых delivered_at пустой.

Для каждого города верните city, delivered — число доставленных заказов и median_min — медиану времени от created_at до delivered_at в минутах с одним знаком.

Город, где все заказы отменены, тоже покажите: delivered = 0, медиана пустая. При чётном числе заказов медиана — среднее двух средних значений. Порядок по city.

В работе: Сравнение городов по скорости доставки: медиана не ломается от одного заказа, застрявшего на три часа.

Таблицы

orders — одна строка — один заказ

КолонкаТипЧто значит
order_idintключ
citytextгород
created_attimestampвремя заказа
delivered_attimestampвремя доставки, NULL у отменённых

Пример: данные

orders · 6 строк

order_idcitycreated_atdelivered_at
1Новосибирск2026-02-10T12:00:002026-02-10T12:31:00
2Новосибирск2026-02-10T12:05:002026-02-10T12:45:00
3Новосибирск2026-02-10T13:00:002026-02-10T13:25:00
4Новосибирск2026-02-10T13:10:00NULL
5Воронеж2026-02-10T19:00:002026-02-10T19:28:00
6Воронеж2026-02-10T19:30:002026-02-10T20:05:00

Ожидаемый ответ

citydeliveredmedian_min
Воронеж231,5
Новосибирск331
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
city, delivered, median_min
медианаGROUP BYNULLдаты

Источник: на данных Еды: заказы и время доставки. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.