В card_tx — операции по картам: покупки с положительной суммой и возвраты покупок с отрицательной. В cashback_rules — процент кэшбэка для MCC-кодов, у которых он есть.
Кэшбэк начисляется за каждую покупку отдельно: сумма × процент / 100, округлённая вниз до рубля. За возвраты и MCC без правила кэшбэк — 0. За месяц клиент получает не больше 3000 ₽.
Для каждого клиента, у которого были операции в марте 2026, верните client_id и cashback_rub. Порядок по client_id.
В работе: Начисление кэшбэка в конце месяца: проверка расчёта перед выплатой.
Таблицы
card_tx — операции по картам
| Колонка | Тип | Что значит |
|---|---|---|
tx_id | int | ключ |
client_id | int | клиент |
tx_at | timestamp | время |
mcc | int | код категории продавца |
amount_rub | numeric | сумма, ₽; возврат — с минусом |
cashback_rules — правила кэшбэка
| Колонка | Тип | Что значит |
|---|---|---|
mcc | int | ключ |
category | text | категория |
pct | numeric | процент кэшбэка |
Пример: данные
card_tx · 7 строк
| tx_id | client_id | tx_at | mcc | amount_rub |
|---|---|---|---|---|
| 1 | 1 | 2026-03-03T19:10:00 | 5411 | 2349,9 |
| 2 | 1 | 2026-03-08T20:30:00 | 5812 | 1870 |
| 3 | 1 | 2026-03-09T11:00:00 | 6011 | 5000 |
| 4 | 2 | 2026-03-10T13:00:00 | 5812 | 1870 |
| 5 | 2 | 2026-03-12T13:00:00 | 5812 | -1870 |
| 6 | 3 | 2026-03-15T09:00:00 | 6011 | 3000 |
| 7 | 3 | 2026-02-28T21:00:00 | 5541 | 4000 |
cashback_rules · 3 строки
| mcc | category | pct |
|---|---|---|
| 5411 | Супермаркеты | 1 |
| 5812 | Рестораны | 5 |
| 5541 | АЗС | 3 |
Ожидаемый ответ
| client_id | cashback_rub |
|---|---|
| 1 | 116 |
| 2 | 93 |
| 3 | 0 |
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
client_id, cashback_rub
Источник: на данных Т-Банка: покупки по картам и правила кэшбэка. Условие пересказано своими словами.
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.