Как рассчитать коэффициент конверсии в MySQL? - PullRequest
0 голосов
/ 16 июня 2019

У меня есть две таблицы: заказ и реклама.

Order columns
1.user_id
2.order_id
3.order_sku  (e-cards, e-book)

Advertising columns 
1. user_id
2. ad_id

Я ищу расчет, в котором знаменателем являются все уникальные пользователи, которые видели объявление в каждом order_sku.Номинатором будут все уникальные пользователи, которые купили в каждом order_sku.

Выходные столбцы должны выглядеть следующим образом:

1. order_id
2. conversion_rate for e-book (in %)
3. conversion_rate for e-cards (in %).

Как бы я сделал это в mySQL?

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

У вас очень странная модель данных. Я не уверен, как один order_id будет связан с несколькими пользователями, но, похоже, это то, что вы делаете.

Я думаю, что проще поместить разные лыжи в разные ряды, поэтому я бы начал с:

SELECT o.order_id, o.order_sku,
       COUNT(DISTINCT o.user_id) / COUNT(DISTINCT a.user_id)
FROM Order o LEFT JOIN
     Advertising a
     ON o.user_id = a.user_id
GROUP BY o.order_id, o.order_sku;
0 голосов
/ 16 июня 2019

Для получения коэффициентов конвертации вы можете использовать агрегатную функцию COUNT(*) с предложением GROUP BY.Что-то вроде:

SELECT (COUNT(*)/(SELECT COUNT(*) FROM Order))*100 AS perc,ad_channel
FROM Order
LEFT JOIN Advertising ON Order.user_id = Advertising.user_id
GROUP BY ad_channel;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...