Клиенты Москвы с балансом ≥ 20 000

Junior SQL Fintech

Условие задания

**Контекст:** Задание по мотивам реального тестового в Альфа-Банке. Продуктовый аналитик готовит выборку крупных клиентов для кросс-продажи инвестиционных продуктов.

**Данные:**

[см. код в задании]

| client_id | fio | region | account_num |
|-----------|------------------|------------------|-------------|
| 1 | Петров А.И. | Москва | ACC-001 |
| 2 | Сидорова М.Н. | Москва | ACC-002 |
| 3 | Козлов Д.В. | Санкт-Петербург | ACC-003 |
| 4 | Иванова Е.П. | Москва | ACC-004 |
| 5 | Новиков С.А. | Москва | ACC-005 |
| 6 | Фёдорова О.К. | Казань | ACC-006 |

**Задание:**

1. Найдите клиентов из Москвы, у которых баланс на последнюю дату ≥ 20 000 USD
2. Выведите ФИО клиента и его баланс на последнюю дату
3. Под «балансом на последнюю дату» понимается summa_usd на MAX(date) для данного счёта

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

Структура для ориентира — реальные значения из эталонного решения.

CREATE TABLE clients (
    client_id INT PRIMARY KEY,
    fio VARCHAR(200) NOT NULL,
    region VARCHAR(100) NOT NULL,
    account_num VARCHAR(20) NOT NULL
);

CREATE TABLE accounts (
    id SERIAL PRIMARY KEY,
    date DATE NOT NULL,
    summa_usd NUMERIC(12,2) NOT NULL,
    account_num VARCHAR(20) NOT NULL
);

INSERT INTO clients (client_id, fio, region, account_num) VALUES
(1, 'Петров А.И.',   'Москва',           'ACC-001'),
(2, 'Сидорова М.Н.', 'Москва',           'ACC-002'),
(3, 'Козлов Д.В.',   'Санкт-Петербург',  'ACC-003'),
(4, 'Иванова Е.П.',  'Москва',           'ACC-004'),
(5, 'Новиков С.А.',  'Москва',           'ACC-005'),
(6, 'Фёдорова О.К.', 'Казань',           'ACC-006');

INSERT INTO accounts (date, summa_usd, account_num) VALUES
('2025-03-01', 15000.00, 'ACC-001'),
('2025-03-15', 25000.00, 'ACC-001'),
('2025-03-01', 22000.00, 'ACC-002'),
('2025-03-10', 18000.00, 'ACC-002'),
('2025-03-01', 30000.00, 'ACC-003'),
('2025-03-01',  5000.00, 'ACC-004'),
('2025-03-20', 21000.00, 'ACC-004'),
('2025-03-01', 19000.00, 'ACC-005'),
('2025-03-15', 19500.00, 'ACC-005');

Темы

JOIN GROUP BY HAVING MAX фильтрация

Подсказки

Все тестовые задания →

Частые вопросы

Какой уровень знаний нужен для задачи "Клиенты Москвы с балансом ≥ 20 000"?

Это задание для уровня Junior. Подходит для начинающих аналитиков, проверяет базовые знания SQL/Python/статистики.

На каких собеседованиях встречается такая задача?

Подобные задания в категории «SQL» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: JOIN, GROUP BY, HAVING, MAX, фильтрация.

Сколько времени даётся на решение?

На реальном собеседовании на подобную задачу отводится 5-10 минут — проверяется скорость и базовая грамотность. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.

Где ещё потренироваться по теме «SQL»?

На zasqlpython.ru есть 425 SQL задач в песочнице с автопроверкой кода, конспекты SQL для аналитика, AI мок-собеседование с разбором ваших ответов.

← Все задания