Задача по аналитике: Согласование данных о расходах и заказах по period + channel

Проверьте понимание темы «Согласование данных о расходах и заказах по period + channel» на самостоятельном примере. Все данные для выбора ответа находятся ниже. Перед расчётом определите, что представляет одна строка данных, какой период рассматривается и какие значения входят в числитель и знаменатель. Различайте неизвестное значение, настоящий ноль и отсутствие наблюдений; вывод должен соответствовать именно заданным условиям. Выберите ответ и воспользуйтесь проверкой. В курсе практической аналитики такие приёмы соединяются в работу с продажами, клиентами и рекламными каналами.

Аналитик хочет вычислить CPA и ROAS за январь 2024 по каждому каналу. У него есть таблица ad_spend (grain: date + channel, поля date, channel, spend) и таблица orders (grain: order_id, поля order_id, customer_id, order_date, status, channel, gross_revenue). Он пишет:

SELECT o.channel, SUM(a.spend) AS total_spend, COUNT(DISTINCT o.order_id) AS paid_orders
FROM orders o
JOIN ad_spend a ON o.channel = a.channel
WHERE o.status = 'paid'
AND strftime('%Y-%m', o.order_date) = '2024-01'
AND strftime('%Y-%m', a.date) = '2024-01'
GROUP BY o.channel;

Отдельный условный фрагмент search: ad_spend содержит две разные январские даты со spend=300 в каждой; orders содержит три разных paid-заказа search в январе. Других строк этого фрагмента нет. Исходный запрос возвращает total_spend=1800, тогда как сумма исходных расходов равна 600.

Какой из маршрутов устранит размножение расходов и даст по одной строке на (period,channel) с верной суммой расходов и числом paid-заказов? Выберите маршрут, пригодный и при повторяющихся значениях spend.

Выберите один вариант
Без регистрации · результат не сохраняется

Связанные задачи