社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

如何计算mySQL中的转换率?

ee8291 • 5 年前 • 1559 次点击  

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

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
 
1559 次点击  
文章 [ 2 ]  |  最新文章 5 年前
Gordon Linoff
Reply   •   1 楼
Gordon Linoff    6 年前

你有一个非常奇怪的数据模型。我不知道一个 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    6 年前

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