По transact выберите трёх клиентов с наибольшей суммой покупок за всю историю. При равных суммах выше тот, у кого меньше id_client. В исходном задании — топ-100, здесь топ-3 под небольшие данные.
Для этих клиентов верните траты по месяцам: client_id, month (первое число месяца), spent_rub. Месяцы без покупок не выводите. Порядок — по client_id, затем month.
В работе: Разбор самых ценных клиентов банка: стабильно ли они тратят или топ сделала одна крупная покупка.
Таблицы
clients — клиенты МТС Банка
| Колонка | Тип | Что значит |
|---|---|---|
client_id | int | ключ |
full_name | text | имя |
transact — одна строка — одна покупка по карте
| Колонка | Тип | Что значит |
|---|---|---|
id_tran | int | ключ |
id_client | int | клиент |
tran_time | timestamp | время |
sum_tran | numeric | сумма, ₽ |
Пример: данные
clients · 4 строки
| client_id | full_name |
|---|---|
| 1 | Аркадий Лосев |
| 2 | Софья Байрамова |
| 3 | Ринат Хасанов |
| 4 | Олеся Дорофеева |
transact · 7 строк
| id_tran | id_client | tran_time | sum_tran |
|---|---|---|---|
| 1 | 1 | 2025-10-05T10:00:00 | 20000 |
| 2 | 1 | 2025-11-07T10:00:00 | 15000 |
| 3 | 2 | 2025-10-12T10:00:00 | 30000 |
| 4 | 3 | 2025-11-01T10:00:00 | 9000 |
| 5 | 3 | 2025-11-20T10:00:00 | 8000 |
| 6 | 4 | 2025-12-01T10:00:00 | 5000 |
| 7 | 2 | 2025-12-30T10:00:00 | 1000 |
Ожидаемый ответ
| client_id | month | spent_rub |
|---|---|---|
| 1 | 2025-10-01 | 20000 |
| 1 | 2025-11-01 | 15000 |
| 2 | 2025-10-01 | 30000 |
| 2 | 2025-12-01 | 1000 |
| 3 | 2025-11-01 | 17000 |
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
client_id, month, spent_rub
Источник: тестовое продуктового аналитика МТС, сборник No Data No Growth. Условие пересказано своими словами.
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.