**Контекст:** Задание из собеса в маркетплейс. Нужно построить воронку «view → cart → checkout → payment» с показом конверсии между каждой парой шагов И с учётом **порядка** (checkout без cart не считается).
**Данные:**
[см. код в задании]
**Правила:**
- Фиксируем период (последние 30 дней).
- Юзер учитывается в шаге N только если у него есть все предыдущие шаги (1..N-1) в **хронологическом порядке**.
- Для каждого юзера смотрим только **первое прохождение** воронки (первый view, первый последующий cart, etc).
**Ожидаемый вывод:**
| step | users | pct_of_first | step_conversion |
|-------------|-------|--------------|------------------|
| view | 100 000 | 100.0% | — |
| cart | 18 000 | 18.0% | 18.0% (от view) |
| checkout | 7 500 | 7.5% | 41.7% (от cart) |
| payment | 5 100 | 5.1% | 68.0% (от checkout) |
Структура для ориентира — реальные значения из эталонного решения.
CREATE TABLE events (
user_id BIGINT NOT NULL,
event_type VARCHAR(32) NOT NULL, -- 'view' | 'cart' | 'checkout' | 'payment'
ts TIMESTAMP NOT NULL,
product_id BIGINT
);
funnel conversion FILTER CASE WHEN order-constrained
Это задание для уровня Senior. Senior-уровень — глубокое понимание темы, опыт решения нестандартных задач, обсуждение trade-off на собеседовании.
Подобные задания в категории «SQL» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: funnel, conversion, FILTER, CASE WHEN, order-constrained.
На реальном собеседовании на подобную задачу отводится 30-60 минут с обсуждением подходов, оптимизаций и trade-off. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 520+ SQL задач в песочнице с автопроверкой кода, конспекты SQL для аналитика, AI мок-собеседование с разбором ваших ответов.
← Все задания