В calls — входящие звонки в колл-центр. dozv_flg = 1, если оператор ответил, 0 — если нет. У непринятых звонков end_at пустой.
Для каждого дня посчитайте calls — сколько звонков поступило, answered — сколько приняли и answer_pct — процент дозвона с одним знаком. День определяется по start_at.
Порядок по day.
В работе: Ежедневный отчёт колл-центра: хватает ли операторов на линии.
Таблицы
calls — одна строка — один входящий звонок
| Колонка | Тип | Что значит |
|---|---|---|
call_id | int | ключ |
client_id | int | клиент |
start_at | timestamp | начало |
end_at | timestamp | конец, NULL если не приняли |
dozv_flg | int | 1 — дозвонился, 0 — нет |
Пример: данные
calls · 5 строк
| call_id | client_id | start_at | end_at | dozv_flg |
|---|---|---|---|---|
| 1 | 11 | 2025-10-01T09:05:00 | 2025-10-01T09:11:00 | 1 |
| 2 | 12 | 2025-10-01T09:20:00 | NULL | 0 |
| 3 | 13 | 2025-10-01T10:00:00 | 2025-10-01T10:03:00 | 1 |
| 4 | 14 | 2025-10-02T11:30:00 | NULL | 0 |
| 5 | 15 | 2025-10-02T12:10:00 | 2025-10-02T12:25:00 | 1 |
Ожидаемый ответ
| day | calls | answered | answer_pct |
|---|---|---|---|
| 2025-10-01 | 3 | 2 | 66,7 |
| 2025-10-02 | 2 | 1 | 50 |
Как проверяем
Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
day, calls, answered, answer_pct
Источник: тестовое задание продуктового аналитика Т-Банка (опубликовано на No Data No Growth). Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.