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

57. Медианное ожидание в очереди отделения

Средняя

В queue_tickets — талоны электронной очереди. called_at — когда клиента вызвали к окну; NULL, если он ушёл, не дождавшись.

Для каждого отделения из branches посчитайте по талонам, выданным в марте 2026 года: tickets — всего талонов, left_queue — сколько ушли без вызова, median_wait_min — медиана ожидания в минутах по вызванным, округлённая до 1 знака.

Отделение без талонов выводите с нулями и NULL в медиане. Верните branch_id, city, tickets, left_queue, median_wait_min, порядок по branch_id.

В работе: Норматив ожидания в отделениях: среднее портят редкие часовые очереди, поэтому смотрят медиану.

Таблицы

branches — отделения

КолонкаТипЧто значит
branch_idintключ
citytextгород
addresstextадрес

queue_tickets — талоны

КолонкаТипЧто значит
ticket_idintключ
branch_idintотделение
issued_attimestampвыдан
called_attimestampвызван, NULL — ушёл

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

branches · 3 строки

branch_idcityaddress
1НовосибирскКрасный проспект, 46
2Омскул. Ленина, 12
3Томскпр. Фрунзе, 90

queue_tickets · 9 строк

ticket_idbranch_idissued_atcalled_at
112026-03-03T10:00:002026-03-03T10:05:00
212026-03-03T10:02:002026-03-03T10:14:00
312026-03-04T11:00:002026-03-04T11:07:00
412026-03-04T11:10:002026-03-04T11:40:00
512026-03-05T09:00:00NULL
622026-03-10T15:00:002026-03-10T15:03:00
722026-03-10T15:01:002026-03-10T15:05:00
822026-03-11T12:00:002026-03-11T12:20:00
922026-02-27T12:00:002026-02-27T13:30:00

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

branch_idcityticketsleft_queuemedian_wait_min
1Новосибирск519,5
2Омск304
3Томск00NULL
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
branch_id, city, tickets, left_queue, median_wait_min
медианаLEFT JOINусловная агрегацияNULL

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

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