В calls — записи CDR: звонок шёл через базовую станцию station_id с started_at включительно до ended_at не включительно. Звонок, который начался ровно в момент окончания другого, с ним не пересекается.
Для каждой станции найдите peak_calls — наибольшее число звонков, шедших одновременно. Верните station_id, peak_calls; порядок — по station_id.
В работе: Планирование ёмкости сети: какие станции упираются в лимит каналов в час пик.
Таблицы
calls — одна строка — один звонок
| Колонка | Тип | Что значит |
|---|---|---|
call_id | int | ключ |
station_id | int | базовая станция |
started_at | timestamp | начало |
ended_at | timestamp | конец, не включительно |
Пример: данные
calls · 5 строк
| call_id | station_id | started_at | ended_at |
|---|---|---|---|
| 1 | 501 | 2025-12-05T18:00:00 | 2025-12-05T18:10:00 |
| 2 | 501 | 2025-12-05T18:05:00 | 2025-12-05T18:20:00 |
| 3 | 501 | 2025-12-05T18:07:00 | 2025-12-05T18:08:00 |
| 4 | 501 | 2025-12-05T18:30:00 | 2025-12-05T18:31:00 |
| 5 | 502 | 2025-12-05T18:00:00 | 2025-12-05T18:01:00 |
Ожидаемый ответ
| station_id | peak_calls |
|---|---|
| 501 | 3 |
| 502 | 1 |
Как проверяем
Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
station_id, peak_calls
Источник: на данных CDR: звонки и базовые станции. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.