我有两个表格:订单和广告。
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中执行此操作?
答案 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;