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

228. Средняя оценка звонков после обжалований

Средняя

В quality_score — проверки качества звонков операторов поддержки. Если оператор обжаловал оценку, новая записывается отдельной строкой, старая остаётся. У одного звонка может быть несколько строк.

Посчитайте среднюю оценку по звонкам, совершённым в августе 2025 (call_dt), беря по каждому звонку только последнюю оценку по score_dt. Если две оценки поставлены в одну секунду, последней считается строка с большим score_id.

Верните одну строку: avg_score (округление до 2 знаков) и calls — сколько звонков вошло в расчёт.

В работе: Ежемесячная премия операторов: средний балл качества после всех апелляций.

Таблицы

quality_score — одна строка — одна версия оценки

КолонкаТипЧто значит
score_idintключ
call_idintзвонок
call_dtdateдата звонка
operatortextоператор
score_dttimestampкогда поставлена оценка
scoreintбалл 0–100

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

quality_score · 6 строк

score_idcall_idcall_dtoperatorscore_dtscore
15012025-08-04Миронова2025-08-05T10:00:0060
25012025-08-04Миронова2025-08-07T16:20:0085
35022025-08-11Ахмедов2025-08-12T09:00:0090
45032025-08-19Миронова2025-08-20T11:00:0070
55032025-08-19Миронова2025-08-22T15:00:0075
65032025-08-19Миронова2025-08-25T12:30:0080

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

avg_scorecalls
853
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк не важен.
avg_score, calls
оконные функциидедупликациядаты

Источник: gist кандидата «Yandex SQL interview», GitHub, 2021. Условие пересказано своими словами.