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

66. Процент дозвона в колл-центр по дням

Лёгкая

В calls — входящие звонки в колл-центр. dozv_flg = 1, если оператор ответил, 0 — если нет. У непринятых звонков end_at пустой.

Для каждого дня посчитайте calls — сколько звонков поступило, answered — сколько приняли и answer_pct — процент дозвона с одним знаком. День определяется по start_at.

Порядок по day.

В работе: Ежедневный отчёт колл-центра: хватает ли операторов на линии.

Таблицы

calls — одна строка — один входящий звонок

КолонкаТипЧто значит
call_idintключ
client_idintклиент
start_attimestampначало
end_attimestampконец, NULL если не приняли
dozv_flgint1 — дозвонился, 0 — нет

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

calls · 5 строк

call_idclient_idstart_atend_atdozv_flg
1112025-10-01T09:05:002025-10-01T09:11:001
2122025-10-01T09:20:00NULL0
3132025-10-01T10:00:002025-10-01T10:03:001
4142025-10-02T11:30:00NULL0
5152025-10-02T12:10:002025-10-02T12:25:001

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

daycallsansweredanswer_pct
2025-10-013266,7
2025-10-022150
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
day, calls, answered, answer_pct
GROUP BYдатыусловная агрегация

Источник: тестовое задание продуктового аналитика Т-Банка (опубликовано на No Data No Growth). Условие пересказано своими словами.

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