Py学习  »  DATABASE

如何计算mySQL中的转换率?

ee8291 • 5 年前 • 1468 次点击  

我有两张桌子:订单和广告。

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

Advertising columns 
1. user_id
2. ad_id

我正在寻找一种计算方法,其中分母是所有在每个订单中看到广告的唯一用户。提名者将是在每个订单中购买的所有唯一用户。

输出列应如下所示:

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

在mySQL中我该怎么做?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/50604
 
1468 次点击  
文章 [ 2 ]  |  最新文章 5 年前
Gordon Linoff
Reply   •   1 楼
Gordon Linoff    5 年前

你有一个非常奇怪的数据模型。我不知道一个 order_id 将与多个用户关联,但这似乎是您正在做的。

我认为将不同的sku放在不同的行上更容易,因此我将从以下几点开始:

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;
salvatore
Reply   •   2 楼
salvatore    5 年前

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