Цепочки источников визитов до транзакции

Senior SQL E-commerce

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

**Контекст:** Маркетплейс анализирует пути пользователей: какие источники трафика (organic, cpc, email, direct, social) ведут к покупке. Нужно восстановить цепочку визитов до каждой транзакции.

**Данные:**

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

Визит с has_transaction = TRUE — это визит, в котором совершена покупка. У пользователя может быть несколько транзакций.

**Задание:**

1. Для каждого визита с транзакцией постройте цепочку источников всех визитов от предыдущей транзакции (или от первого визита) до текущей включительно
2. Цепочка в формате: 'organic → cpc → email → direct' (через STRING_AGG)
3. Выведите user_id, дату транзакции, цепочку, количество визитов в цепочке, первый источник (first touch) и последний источник (last touch)

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

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

CREATE TABLE visits (
    id SERIAL PRIMARY KEY,
    user_id INT NOT NULL,
    source VARCHAR(50) NOT NULL,        -- 'organic', 'cpc', 'email', 'direct', 'social'
    visit_date TIMESTAMP NOT NULL,
    has_transaction BOOLEAN NOT NULL DEFAULT FALSE
);

Темы

STRING_AGG оконные функции атрибуция ARRAY_AGG

Подсказки

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

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

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

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

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

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

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

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

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

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

← Все задания