Войти Регистрация
Data base

55. Переводы по СБП сверх бесплатного лимита

Лёгкая

Исходящие переводы по СБП до 100 000 ₽ в месяц банк проводит без комиссии, сверх — с комиссией. В sbp_transfers есть успешные, отклонённые и зависшие переводы.

Найдите клиентов, у которых сумма успешных (status = 'success') переводов за март 2026 года строго больше 100 000 ₽. Верните client_id, total_rub и over_limit_rub — сколько сверх лимита.

Порядок — по over_limit_rub по убыванию, затем по client_id.

В работе: Расчёт комиссионного дохода и уведомление клиента, что лимит почти исчерпан.

Таблицы

sbp_transfers — исходящие переводы по СБП

КолонкаТипЧто значит
transfer_idintключ
client_idintотправитель
amount_rubnumericсумма
statustextsuccess / declined / pending
created_attimestampвремя перевода

Пример: данные

sbp_transfers · 6 строк

transfer_idclient_idamount_rubstatuscreated_at
11060000success2026-03-05T10:12:00
21050000success2026-03-20T19:40:00
31140000success2026-03-02T08:00:00
41180000declined2026-03-02T08:05:00
51299000success2026-03-11T14:00:00
6122000success2026-03-12T09:30:00

Ожидаемый ответ

client_idtotal_rubover_limit_rub
1011000010000
121010001000
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
client_id, total_rub, over_limit_rub
GROUP BYHAVINGдаты

Источник: на данных Сбера: переводы по СБП. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.