如何在MySQL中计算转换率?

时间:2019-06-16 19:45:49

标签: mysql sql

我有两个表格:订单和广告。

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 :(得分:0)

要获得转换率,可以将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;

答案 1 :(得分:0)

您有一个非常奇怪的数据模型。我不确定单个order_id将如何与多个用户关联,但这似乎就是您正在做的事情。

我认为将不同的skus放在不同的行上比较容易,所以我将从以下内容开始:

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;