**Контекст:** Fintech-приложение формирует ежедневный отчёт по транзакциям. В некоторые дни транзакций не было, но в отчёте должны быть все дни (с нулями).
**Данные:**
[см. код в задании]
**Задание:**
1. Сгенерируйте полный календарь дат за последние 90 дней (без пропусков)
2. Для каждого дня и каждого типа транзакций выведите сумму и количество
3. Дни без транзакций определённого типа должны показывать 0
4. Добавьте скользящее среднее суммы за 7 дней для каждого типа
Структура для ориентира — реальные значения из эталонного решения.
CREATE TABLE daily_transactions (
tx_date DATE NOT NULL,
tx_type VARCHAR(50) NOT NULL, -- 'deposit', 'withdrawal', 'transfer'
total_amount NUMERIC(14,2) NOT NULL,
tx_count INT NOT NULL
);
WITH RECURSIVE generate_series LEFT JOIN заполнение пропусков
Это задание для уровня Senior. Senior-уровень — глубокое понимание темы, опыт решения нестандартных задач, обсуждение trade-off на собеседовании.
Подобные задания в категории «SQL» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: WITH RECURSIVE, generate_series, LEFT JOIN, заполнение пропусков.
На реальном собеседовании на подобную задачу отводится 30-60 минут с обсуждением подходов, оптимизаций и trade-off. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 425 SQL задач в песочнице с автопроверкой кода, конспекты SQL для аналитика, AI мок-собеседование с разбором ваших ответов.
← Все задания