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

64. Топ-10 клиентов по внесениям за март

Средняя

Таблица та же — user_money. Нужен рейтинг клиентов по сумме внесений наличных через банкомат в марте 2026 (movement_type = atm, сумма больше нуля).

В рейтинг попадают первые 10 мест. Если несколько клиентов делят место, у них одинаковое place, а следующее место пропускается: 1, 2, 2, 4. Кто делит 10-е место, попадает в рейтинг весь.

Верните client_id, deposited_rub, place. Порядок: place, затем client_id.

В работе: Отбор клиентов для акции «наличные без комиссии» — приз получают все, кто вошёл в десятку.

Таблицы

user_money — движения денег по картам: плюс — пополнение, минус — списание

КолонкаТипЧто значит
op_idintключ
op_attimestampвремя операции
client_idintклиент
money_movementintсумма, ₽, со знаком
movement_typetextatm / transfer / purchase / salary

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

user_money · 13 строк

op_idop_atclient_idmoney_movementmovement_type
12026-03-02T10:00:0010130000atm
22026-03-20T10:00:0010120000atm
32026-03-03T11:00:0010242000atm
42026-03-04T12:00:0010342000atm
52026-03-05T13:00:0010430000atm
62026-03-06T14:00:0010525000atm
72026-03-07T15:00:0010620000atm
82026-03-08T16:00:0010718000atm
92026-03-09T17:00:0010815000atm
102026-03-10T18:00:0010912000atm
112026-03-11T19:00:001109000atm
122026-03-12T20:00:001119000atm
132026-03-13T21:00:001125000atm

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

client_iddeposited_rubplace
101500001
102420002
103420002
104300004
105250005
106200006
107180007
108150008
109120009
110900010
111900010
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 5 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
client_id, deposited_rub, place
оконные функцииGROUP BYтоп-N в группе

Источник: разбор технического интервью аналитика данных в Т-Банке, 2025. Условие пересказано своими словами.

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