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

3. Остатки москвичей на последнюю дату

Средняя

В balances — ежемесячные остатки по счетам, у клиента может быть несколько счетов (accounts). Последняя дата — максимальная report_date во всей таблице balances.

Найдите клиентов с region = 'Москва', у которых сумма остатков по всем счетам на эту дату не меньше 20 000 ₽. Счёт без строки на последнюю дату считается закрытым и в сумму не входит.

Верните client_id, full_name, total_rub; порядок — по total_rub убыванию, при равенстве по client_id.

В работе: Отбор клиентов под предложение накопительного счёта с повышенной ставкой.

Таблицы

clients — клиенты

КолонкаТипЧто значит
client_idintключ
full_nametextФИО
regiontextрегион обслуживания

accounts — счета клиентов

КолонкаТипЧто значит
account_numtextномер счёта
client_idintвладелец

balances — остаток счёта на отчётную дату

КолонкаТипЧто значит
account_numtextсчёт
report_datedateотчётная дата
balance_rubnumericостаток, ₽

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

clients · 3 строки

client_idfull_nameregion
1Миронова Ольга ПетровнаМосква
2Орлов Денис ИгоревичМосква
3Шубина Елена РашидовнаКазань

accounts · 4 строки

account_numclient_id
408178101000000000011
408178101000000000021
408178101000000000032
408178101000000000043

balances · 8 строк

account_numreport_datebalance_rub
408178101000000000012026-03-3115000
408178101000000000012026-04-3012000
408178101000000000022026-03-315000
408178101000000000022026-04-309000
408178101000000000032026-03-3130000
408178101000000000032026-04-3018000
408178101000000000042026-03-3150000
408178101000000000042026-04-3050000

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

client_idfull_nametotal_rub
1Миронова Ольга Петровна21000
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
client_id, full_name, total_rub
JOINGROUP BYHAVINGподзапросCTE

Источник: тестовое продуктового аналитика Альфа-Банка, сборник No Data No Growth. Условие пересказано своими словами.

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