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

16. Рейтинг продавцов с тремя отзывами и больше

Лёгкая

В reviews — оценки покупателей от 1 до 5 (rating, тип int). Рейтинг на карточке показываем только продавцам, у которых не меньше трёх отзывов.

Верните seller_id, name, avg_rating — среднее, округлённое до двух знаков, и reviews — число отзывов. Порядок — по avg_rating по убыванию, затем по seller_id.

В работе: Звёзды на карточке продавца и порог, после которого им можно верить.

Таблицы

sellers — продавцы

КолонкаТипЧто значит
seller_idintключ
nametextимя или название магазина

reviews — одна строка — один отзыв

КолонкаТипЧто значит
review_idintключ
seller_idintпродавец
buyer_idintавтор
ratingint1–5
created_attimestampдата

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

sellers · 3 строки

seller_idname
1Магазин «Шина-Центр»
2Елена Сорокина
3Павел Иванов

reviews · 9 строк

review_idseller_idbuyer_idratingcreated_at
111152025-11-01T00:00:00
211242025-11-03T00:00:00
311342025-11-10T00:00:00
421452025-12-01T00:00:00
521552025-12-02T00:00:00
631632025-12-05T00:00:00
731722025-12-06T00:00:00
831852025-12-07T00:00:00
931912025-12-08T00:00:00

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

seller_idnameavg_ratingreviews
1Магазин «Шина-Центр»4,333
3Павел Иванов2,754
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
seller_id, name, avg_rating, reviews
GROUP BYHAVINGJOIN

Источник: на данных Авито: отзывы о продавцах. Условие пересказано своими словами.

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