В card_ops лежат операции по картам: покупки (op_type = purchase) и переводы (transfer). У каждой операции есть cashback_rub — начисленный кэшбэк, 0, если не начислен.
Для каждого клиента с хотя бы одной покупкой верните client_id, purchases — число покупок и cashback_pct — процент покупок с кэшбэком больше нуля, округлённый до одного знака. Переводы не учитывайте. Порядок — по client_id.
В работе: Проверка, как часто кэшбэк реально срабатывает у клиента, перед сменой категорий месяца.
Таблицы
card_ops — одна строка — одна операция по карте
| Колонка | Тип | Что значит |
|---|---|---|
op_id | int | ключ |
client_id | int | клиент |
op_type | text | purchase / transfer |
amount_rub | numeric | сумма |
cashback_rub | numeric | кэшбэк, 0 — не начислен |
Пример: данные
card_ops · 9 строк
| op_id | client_id | op_type | amount_rub | cashback_rub |
|---|---|---|---|---|
| 1 | 1 | purchase | 1290 | 12,9 |
| 2 | 1 | purchase | 450 | 4,5 |
| 3 | 1 | purchase | 3200 | 0 |
| 4 | 2 | purchase | 860 | 8,6 |
| 5 | 2 | purchase | 99 | 0 |
| 6 | 2 | purchase | 150 | 0 |
| 7 | 2 | purchase | 2400 | 0 |
| 8 | 2 | transfer | 5000 | 0 |
| 9 | 3 | purchase | 710 | 0 |
Ожидаемый ответ
| client_id | purchases | cashback_pct |
|---|---|---|
| 1 | 3 | 66,7 |
| 2 | 4 | 25 |
| 3 | 1 | 0 |
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
client_id, purchases, cashback_pct
Источник: наша задача на данных Т‑Банка: кэшбэк по карточным покупкам. Условие пересказано своими словами.
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.