По таблице events (события пользователей) построй воронку по шагам view → add_to_cart → checkout → purchase. Для каждого шага выведи колонки: step_name — название шага; users — число УНИКАЛЬНЫХ пользователей, у которых было это событие; conv_from_prev_pct — конверсия из предыдущего шага в процентах (для первого шага NULL); conv_overall_pct — конверсия от первого шага (view) в процентах. Проценты округли до 1 знака. Отсортируй строки в порядке шагов воронки.
CREATE TABLE events (
user_id INTEGER NOT NULL,
event_type TEXT NOT NULL, -- view | add_to_cart | checkout | purchase
event_time TEXT NOT NULL -- YYYY-MM-DD HH:MM
);
воронка funnel window-functions LAG count-distinct
Задача «Воронка покупки: конверсия и отвал между шагами» учит решать задачи по теме «Воронки конверсии» так, как это спрашивают на собеседовании аналитика данных. Такие задачи встречаются на собеседованиях в Avito и других IT-компаниях. Уровень средний — типичная боевая задача на уверенное владение SQL.
Сначала разберись со схемой данных и пойми, какой результат нужен на выходе. Определи, какие таблицы и поля задействованы, и собирай запрос пошагово: фильтрация → соединение или группировка → итоговый отбор и сортировка. Проверь результат на крайних случаях — NULL, дубликаты, пустые группы. Свой запрос сразу прогоняешь автопроверкой в интерактивной SQL-песочнице на реальной базе (SQLite и PostgreSQL 16 прямо в браузере).
Хочешь разобрать SQL системно с нуля — пройди бесплатный курс «SQL с нуля» и закрепи навык в тренажёре.
Решить в интерактивной SQL-песочнице → ← Все SQL-задачи