**Контекст:** Маркетплейс ранжирует продавцов по «чистому» GMV (Gross Merchandise Value) с учётом возвратов и штрафов. Рейтинг используется для распределения промо-слотов на главной странице.
**Данные:**
[см. код в задании]
**Задание:**
1. Для каждого продавца рассчитайте за последний месяц: gross GMV, сумму возвратов, сумму штрафов, net GMV (= gross - возвраты - штрафы)
2. Рассчитайте комиссию маркетплейса (SUM of gmv × commission_rate)
3. Ранжируйте продавцов по net GMV внутри каждой категории через RANK()
4. Выведите топ-3 продавца в каждой категории
Структура для ориентира — реальные значения из эталонного решения.
CREATE TABLE sellers (
id SERIAL PRIMARY KEY,
name VARCHAR(200) NOT NULL,
category VARCHAR(100) NOT NULL, -- 'Электроника', 'Одежда', 'Дом', ...
registered_at TIMESTAMP NOT NULL
);
CREATE TABLE seller_orders (
id SERIAL PRIMARY KEY,
seller_id INT REFERENCES sellers(id),
order_id INT NOT NULL,
gmv NUMERIC(12,2) NOT NULL,
commission_rate NUMERIC(5,4) NOT NULL, -- 0.05–0.20
created_at TIMESTAMP NOT NULL
);
CREATE TABLE seller_returns (
id SERIAL PRIMARY KEY,
seller_order_id INT REFERENCES seller_orders(id),
refund_amount NUMERIC(12,2) NOT NULL,
returned_at TIMESTAMP NOT NULL
);
CREATE TABLE seller_penalties (
id SERIAL PRIMARY KEY,
seller_id INT REFERENCES sellers(id),
penalty_type VARCHAR(50) NOT NULL, -- 'late_shipment', 'counterfeit', 'bad_reviews'
amount NUMERIC(10,2) NOT NULL,
created_at TIMESTAMP NOT NULL
);
CTE LEFT JOIN COALESCE RANK агрегация
Это задание для уровня Middle. Для middle-аналитиков с опытом 1-3 года, требует уверенного владения темой и понимания edge cases.
Подобные задания в категории «SQL» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: CTE, LEFT JOIN, COALESCE, RANK, агрегация.
На реальном собеседовании на подобную задачу отводится 15-30 минут — оцениваются подход, корректность, обработка edge cases. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 425 SQL задач в песочнице с автопроверкой кода, конспекты SQL для аналитика, AI мок-собеседование с разбором ваших ответов.
← Все задания