В purchases — покупки по карте. Кэшбэк начисляется с каждой покупки отдельно: 5 % для mcc_group = АЗС, 1,5 % для остальных. Копейки отбрасываются у каждой покупки: с 99 ₽ кэшбэк 1,485 ₽ превращается в 1 ₽.
Посчитайте кэшбэк каждого клиента за сентябрь 2026 года (по op_at). Верните client_id, cashback_rub — целое число рублей. Клиент с покупками, но без кэшбэка, выводится с нулём. Порядок — по client_id.
В работе: Сверка начислений перед выплатой: расхождение в рубль на клиента — это миллионы на всю базу.
Таблицы
purchases — одна строка — одна покупка
| Колонка | Тип | Что значит |
|---|---|---|
op_id | int | ключ |
client_id | int | клиент |
op_at | timestamp | время покупки |
mcc_group | text | группа MCC: АЗС, Супермаркеты, Кафе… |
amount_rub | numeric | сумма покупки |
Пример: данные
purchases · 5 строк
| op_id | client_id | op_at | mcc_group | amount_rub |
|---|---|---|---|---|
| 1 | 1 | 2026-09-03T08:40:00 | Супермаркеты | 1290 |
| 2 | 1 | 2026-09-03T19:10:00 | Кафе | 450 |
| 3 | 1 | 2026-09-05T12:00:00 | Аптеки | 99 |
| 4 | 2 | 2026-09-07T07:30:00 | АЗС | 2500 |
| 5 | 2 | 2026-09-07T07:35:00 | Кафе | 230 |
Ожидаемый ответ
| client_id | cashback_rub |
|---|---|
| 1 | 26 |
| 2 | 128 |
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
client_id, cashback_rub
Источник: наша задача на данных Альфа-Банка: начисление кэшбэка по карте. Условие пересказано своими словами.
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.