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

58. Ставка вклада на дату открытия

Средняя

В deposit_rates — история ставок: с даты valid_from по продукту действует rate_pct, пока не появится следующая запись. Ставки и повышали, и снижали.

Для каждого вклада из deposits найдите ставку, действовавшую в день открытия opened_on (запись с датой в этот же день уже действует). Посчитайте year_income_rub — доход за год без капитализации, amount_rub * rate_pct / 100, округлить до копеек.

Если на дату открытия ставки по продукту ещё не было (ошибка миграции), выведите NULL. Верните deposit_id, product, opened_on, rate_pct, year_income_rub, порядок по deposit_id.

В работе: Прогноз процентных расходов банка и проверка, что клиенту начислили обещанную ставку.

Таблицы

deposit_rates — история ставок

КолонкаТипЧто значит
producttextвклад
valid_fromdateдействует с
rate_pctnumericставка, % годовых

deposits — открытые вклады

КолонкаТипЧто значит
deposit_idintключ
client_idintклиент
producttextвклад
opened_ondateдата открытия
amount_rubnumericсумма

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

deposit_rates · 5 строк

productvalid_fromrate_pct
Лучший %2025-01-0121
Лучший %2025-10-1518,5
Лучший %2026-03-0116
СберВклад2025-06-0117
СберВклад2026-02-0115,2

deposits · 5 строк

deposit_idclient_idproductopened_onamount_rub
1501Лучший %2025-03-10300000
2502Лучший %2025-10-15150000
3503СберВклад2026-01-311000000
4504СберВклад2025-05-20500000
5505Лучший %2026-04-05200000

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

deposit_idproductopened_onrate_pctyear_income_rub
1Лучший %2025-03-102163000
2Лучший %2025-10-1518,527750
3СберВклад2026-01-3117170000
4СберВклад2025-05-20NULLNULL
5Лучший %2026-04-051632000
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
deposit_id, product, opened_on, rate_pct, year_income_rub
JOINподзапросоконные функциидатыNULL

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

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