В reviews — оценки покупателей от 1 до 5 (rating, тип int). Рейтинг на карточке показываем только продавцам, у которых не меньше трёх отзывов.
Верните seller_id, name, avg_rating — среднее, округлённое до двух знаков, и reviews — число отзывов. Порядок — по avg_rating по убыванию, затем по seller_id.
В работе: Звёзды на карточке продавца и порог, после которого им можно верить.
Таблицы
sellers — продавцы
| Колонка | Тип | Что значит |
|---|---|---|
seller_id | int | ключ |
name | text | имя или название магазина |
reviews — одна строка — один отзыв
| Колонка | Тип | Что значит |
|---|---|---|
review_id | int | ключ |
seller_id | int | продавец |
buyer_id | int | автор |
rating | int | 1–5 |
created_at | timestamp | дата |
Пример: данные
sellers · 3 строки
| seller_id | name |
|---|---|
| 1 | Магазин «Шина-Центр» |
| 2 | Елена Сорокина |
| 3 | Павел Иванов |
reviews · 9 строк
| review_id | seller_id | buyer_id | rating | created_at |
|---|---|---|---|---|
| 1 | 1 | 11 | 5 | 2025-11-01T00:00:00 |
| 2 | 1 | 12 | 4 | 2025-11-03T00:00:00 |
| 3 | 1 | 13 | 4 | 2025-11-10T00:00:00 |
| 4 | 2 | 14 | 5 | 2025-12-01T00:00:00 |
| 5 | 2 | 15 | 5 | 2025-12-02T00:00:00 |
| 6 | 3 | 16 | 3 | 2025-12-05T00:00:00 |
| 7 | 3 | 17 | 2 | 2025-12-06T00:00:00 |
| 8 | 3 | 18 | 5 | 2025-12-07T00:00:00 |
| 9 | 3 | 19 | 1 | 2025-12-08T00:00:00 |
Ожидаемый ответ
| seller_id | name | avg_rating | reviews |
|---|---|---|---|
| 1 | Магазин «Шина-Центр» | 4,33 | 3 |
| 3 | Павел Иванов | 2,75 | 4 |
Как проверяем
Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
seller_id, name, avg_rating, reviews
Источник: на данных Авито: отзывы о продавцах. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.