Объявление проходит модерацию несколько раз: после публикации, после правки, по жалобе. Каждое решение — строка в moderation: verdict = approved или blocked, у блокировки есть reason.
Текущий статус — последнее решение по decided_at; если два решения приняты в одну секунду, последним считается то, у которого больше decision_id.
Верните, сколько объявлений сейчас заблокировано по каждой причине: reason, listings. Порядок — по listings по убыванию, затем по reason.
В работе: Дашборд модерации: какие причины блокировок сейчас держат объявления вне выдачи.
Таблицы
moderation — одна строка — одно решение модератора или автомата
| Колонка | Тип | Что значит |
|---|---|---|
decision_id | int | ключ, растёт со временем записи |
listing_id | int | объявление |
decided_at | timestamp | время решения |
verdict | text | approved / blocked |
reason | text | причина блокировки, NULL у approved |
Пример: данные
moderation · 7 строк
| decision_id | listing_id | decided_at | verdict | reason |
|---|---|---|---|---|
| 1 | 501 | 2026-04-01T10:00:00 | approved | NULL |
| 2 | 502 | 2026-04-01T10:05:00 | blocked | запрещённый товар |
| 3 | 503 | 2026-04-01T10:07:00 | blocked | контакты в описании |
| 4 | 503 | 2026-04-01T14:30:00 | approved | NULL |
| 5 | 504 | 2026-04-02T09:00:00 | blocked | контакты в описании |
| 6 | 505 | 2026-04-02T09:10:00 | approved | NULL |
| 7 | 505 | 2026-04-03T18:00:00 | blocked | контакты в описании |
Ожидаемый ответ
| reason | listings |
|---|---|
| контакты в описании | 2 |
| запрещённый товар | 1 |
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
reason, listings
Источник: на данных Авито: модерация объявлений. Условие пересказано своими словами.
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.