**Контекст:** Задание по мотивам реального тестового в Альфа-Банке. Продуктовый аналитик готовит выборку крупных клиентов для кросс-продажи инвестиционных продуктов.
**Данные:**
[см. код в задании]
| 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 фильтрация
Это задание для уровня Junior. Подходит для начинающих аналитиков, проверяет базовые знания SQL/Python/статистики.
Подобные задания в категории «SQL» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: JOIN, GROUP BY, HAVING, MAX, фильтрация.
На реальном собеседовании на подобную задачу отводится 5-10 минут — проверяется скорость и базовая грамотность. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 425 SQL задач в песочнице с автопроверкой кода, конспекты SQL для аналитика, AI мок-собеседование с разбором ваших ответов.
← Все задания