В card_tx — покупки по карте Ozon Банка, в cashback_rates — ставка кэшбэка категории в целых процентах (pct = 5 значит 5 %). Покупки в категориях без ставки кэшбэк не дают.
Кэшбэк клиента за месяц — сумма по всем его покупкам месяца amount_rub * pct / 100, округлённая вниз до рубля, но не больше 3000 ₽.
Верните кэшбэк за октябрь 2025 года: client_id, cashback_rub, только для клиентов, у которых были покупки в категориях со ставкой. Порядок — по client_id.
В работе: Начисление кэшбэка в конце месяца и проверка, сколько клиентов упираются в лимит.
Таблицы
card_tx — покупки по карте
| Колонка | Тип | Что значит |
|---|---|---|
tx_id | int | ключ |
client_id | int | клиент |
tx_at | timestamp | время |
amount_rub | numeric | сумма |
category | text | категория покупки |
cashback_rates — ставки категорий
| Колонка | Тип | Что значит |
|---|---|---|
category | text | ключ |
pct | int | процент кэшбэка |
Пример: данные
card_tx · 5 строк
| tx_id | client_id | tx_at | amount_rub | category |
|---|---|---|---|---|
| 1 | 1 | 2025-10-03T10:00:00 | 4280,5 | Супермаркеты |
| 2 | 1 | 2025-10-05T19:20:00 | 650 | Такси |
| 3 | 1 | 2025-10-06T09:00:00 | 15000 | Электроника |
| 4 | 2 | 2025-10-10T12:00:00 | 1290 | Аптеки |
| 5 | 3 | 2025-10-11T12:00:00 | 8000 | Электроника |
cashback_rates · 3 строки
| category | pct |
|---|---|
| Супермаркеты | 5 |
| Аптеки | 3 |
| Такси | 10 |
Ожидаемый ответ
| client_id | cashback_rub |
|---|---|
| 1 | 279 |
| 2 | 38 |
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
client_id, cashback_rub
Источник: на данных Ozon Банка: операции по карте и кэшбэк. Условие пересказано своими словами.
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.