我目前正在为我的一个客户工作一个统计程序,但我似乎无法弄清楚如何计算转化率。
表是这样的:
User_id order_id plan_id
12 12 16
12 13 2
12 14 2
14 15 5
14 16 16
15 17 16
订单id16
是试用版,其余的是付费的。所以你可以看到用户 15,只有一个试用版。所以他没有将免费转换为付费。
用户 12 和 14 都有试用版 (plan_id=16) 和付费套餐 (plan_id<>16),这意味着他从免费转换为付费。
所以我正在寻找一个计算转化率的方向指针。我正在寻找以下方向的查询(或输出我需要的数量):
Converted Notconverted
1200 1800
这是给用户的。那么有多少用户为试用过的帐户付费。
我有这个查询;但我似乎无法对用户进行分组,因为它显然会返回更多行。
SELECT (SELECT COUNT(*) AS TotalOrders FROM orders where (plan_id<>17) GROUP BY user_id) AS SuccessCount, (SELECT COUNT(*) AS TotalFreeAccounts FROM orders where (plan_id=16) GROUP BY user_id) AS TrialCount
编辑:几乎在那里(:
到目前为止,我们遇到了以下查询,它似乎对转换后有效。但不适用于未皈依的人。作为一个小的调整,计划 17 也是一个试用版:
SELECT
count(Distinct TN2.user_id) as Converted,
count(Distinct TN.user_id) as NotConverted
FROM orders TN
INNER JOIN orders TN2
on TN.user_id = TN2.user_id
and (TN.plan_id = 16 OR TN.plan_id = 17)
and (TN2.plan_id <> 16 AND TN2.plan_id<>17)
结果完全一样,但这是不可能的
两者都设置为相同的数字,这是可能的。我很确定这对于未转换的人来说是正确的。
提前感谢您的帮助。