В revenue одна строка на пользователя и день, когда он принёс деньги: event_date, user_id, revenue (целые рубли).
Добавьте колонку share: выручка пользователя в этот день, делённая на его выручку в предыдущий день, когда он был активен. Дни без строки пропускаются: если покупатель платил 3-го и 5-го ноября, 5-е сравнивается с 3-м.
Для первого дня пользователя и для деления на 0 в share — NULL. Округление до 2 знаков. Порядок: event_date по убыванию, затем user_id.
В работе: Отчёт о платящих пользователях: кто резко сократил траты на продвижение объявлений.
Таблицы
revenue — одна строка — пользователь и день с выручкой
| Колонка | Тип | Что значит |
|---|---|---|
event_date | date | день |
user_id | int | пользователь |
revenue | int | выручка, руб. |
Пример: данные
revenue · 6 строк
| event_date | user_id | revenue |
|---|---|---|
| 2025-11-03 | 11 | 400 |
| 2025-11-04 | 11 | 600 |
| 2025-11-05 | 11 | 300 |
| 2025-11-03 | 12 | 1000 |
| 2025-11-05 | 12 | 250 |
| 2025-11-04 | 13 | 90 |
Ожидаемый ответ
| event_date | user_id | revenue | share |
|---|---|---|---|
| 2025-11-05 | 11 | 300 | 0,5 |
| 2025-11-05 | 12 | 250 | 0,25 |
| 2025-11-04 | 11 | 600 | 1,5 |
| 2025-11-04 | 13 | 90 | NULL |
| 2025-11-03 | 11 | 400 | NULL |
| 2025-11-03 | 12 | 1000 | NULL |
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
event_date, user_id, revenue, share
Источник: тестовое аналитика данных (Middle) в Авито, сборник No Data No Growth. Условие пересказано своими словами.
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.