Контракты с условиями по обороту и диверсификации

Senior SQL Fintech

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

**Контекст:** Платёжная система ищет контрагентов для премиальной программы. Критерии: высокий оборот, диверсификация клиентской базы, достаточный масштаб.

**Данные:**

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

**Задание — найдите контракты, удовлетворяющие ВСЕМ условиям:**

1. Среднемесячный оборот (за последние 12 месяцев) ≥ 50 000 ₽
2. Ни один клиент не генерирует более 60% от общего оборота контракта
3. Исключить агентства (contract_type = 'agency') с менее чем 10 клиентами
4. Выведите contract_id, общий оборот, среднемесячный оборот, макс. долю клиента

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

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

CREATE TABLE contracts (
    id SERIAL PRIMARY KEY,
    contract_id VARCHAR(50) NOT NULL,
    contract_type VARCHAR(20) NOT NULL,    -- 'agency', 'direct'
    client_count INT NOT NULL              -- количество клиентов у контрагента
);

CREATE TABLE transactions (
    id SERIAL PRIMARY KEY,
    contract_id VARCHAR(50) NOT NULL,
    client_id INT NOT NULL,
    amount NUMERIC(12,2) NOT NULL,
    tx_date DATE NOT NULL
);

Темы

HAVING подзапросы агрегация бизнес-логика

Подсказки

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

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

Какой уровень знаний нужен для задачи "Контракты с условиями по обороту и диверсификации"?

Это задание для уровня Senior. Senior-уровень — глубокое понимание темы, опыт решения нестандартных задач, обсуждение trade-off на собеседовании.

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

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

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

На реальном собеседовании на подобную задачу отводится 30-60 минут с обсуждением подходов, оптимизаций и trade-off. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.

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

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

← Все задания