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

15. Активные продавцы в «Авто» за неделю

Лёгкая

Четыре таблицы: users, categories, listings и blocks — история блокировок. Блокировка действует, пока blocks.unblocked_at равен NULL; снятая блокировка пользователя не ограничивает.

Отчёт строим 15 марта 2026 года за последние 7 дней, включая 15-е: с 9 по 15 марта. Верните пользователей без действующей блокировки, которые за это время подали больше пяти объявлений в категории «Авто»: user_id, name, listings_cnt.

Порядок — по listings_cnt по убыванию, затем по user_id.

В работе: Поиск перекупщиков, которые под видом частников массово выкладывают машины.

Таблицы

users — пользователи

КолонкаТипЧто значит
user_idintключ
nametextимя
citytextгород

categories — категории

КолонкаТипЧто значит
category_idintключ
nametextназвание

listings — объявления

КолонкаТипЧто значит
listing_idintключ
user_idintавтор
category_idintкатегория
created_attimestampкогда подано

blocks — история блокировок

КолонкаТипЧто значит
block_idintключ
user_idintкого
blocked_attimestampкогда
unblocked_attimestampкогда сняли, NULL — действует

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

users · 4 строки

user_idnamecity
1Артём ГусевКраснодар
2Олег СафинКазань
3Ирина БеловаТверь
4Руслан АхмедовМахачкала

categories · 2 строки

category_idname
1Авто
2Электроника

listings · 24 строк

listing_iduser_idcategory_idcreated_at
1112026-03-10T12:00:00
2112026-03-10T15:00:00
3112026-03-10T18:00:00
4112026-03-10T21:00:00
5112026-03-11T00:00:00
6112026-03-11T03:00:00
101212026-03-11T11:00:00
102212026-03-11T12:00:00
103212026-03-11T13:00:00
104212026-03-11T14:00:00
105212026-03-11T15:00:00
201312026-03-12T13:00:00
202312026-03-12T14:00:00
203312026-03-12T15:00:00
204312026-03-12T16:00:00
205322026-03-12T17:00:00
206322026-03-12T18:00:00
301412026-03-13T09:00:00
302412026-03-13T10:00:00
303412026-03-13T11:00:00
304412026-03-13T12:00:00
305412026-03-13T13:00:00
306412026-03-13T14:00:00
307412026-03-13T15:00:00

blocks · 1 строка

block_iduser_idblocked_atunblocked_at
142026-03-14T20:00:00NULL

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

user_idnamelistings_cnt
1Артём Гусев6
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
user_id, name, listings_cnt
JOINGROUP BYHAVINGантиджойндаты

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

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