После чата в СберБанк Онлайн клиент может поставить оценку от 1 до 5. Если не поставил, support_chats.score — NULL.
Для каждой темы topic верните chats — число чатов, rated — сколько из них оценили, avg_score — среднюю оценку среди оценивших, до двух знаков. Если в теме никто не оценил, avg_score — NULL. Порядок — по topic.
В работе: Отчёт качества поддержки: по каким темам клиенты уходят недовольными.
Таблицы
support_chats — одна строка — один чат
| Колонка | Тип | Что значит |
|---|---|---|
chat_id | int | ключ |
topic | text | тема обращения |
closed_at | timestamp | закрытие чата |
score | int | оценка 1–5, NULL — не оценил |
Пример: данные
support_chats · 7 строк
| chat_id | topic | closed_at | score |
|---|---|---|---|
| 1 | Карты | 2026-02-02T10:15:00 | 5 |
| 2 | Карты | 2026-02-02T11:40:00 | NULL |
| 3 | Карты | 2026-02-03T09:05:00 | 4 |
| 4 | Переводы | 2026-02-03T12:30:00 | 2 |
| 5 | Переводы | 2026-02-03T13:10:00 | NULL |
| 6 | Переводы | 2026-02-04T18:45:00 | NULL |
| 7 | Вклады | 2026-02-05T08:20:00 | NULL |
Ожидаемый ответ
| topic | chats | rated | avg_score |
|---|---|---|---|
| Вклады | 1 | 0 | NULL |
| Карты | 3 | 2 | 4,5 |
| Переводы | 3 | 1 | 2 |
Как проверяем
Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 5 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
topic, chats, rated, avg_score
Источник: наша задача на данных Сбера: оценки чата поддержки в СберБанк Онлайн. Условие пересказано своими словами.
Давали на собеседовании?
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.