首页 > 解决方案 > 寻找转化率

问题描述

我有两个列表,每个项目的订阅结果。我需要知道每个实验的转化率。

我的桌子是:

在此处输入图像描述

我想要的结果是

在此处输入图像描述

转换是除试用开始事件之外还有订阅开始事件的任何用户(所有用户都有试用开始事件)。如果用户同时在多个实验中,可以将它们计入每个实验的转化率,也希望每个实验只返回一行。

我已经完成了一次内部连接以将订阅事件和实验 ID 放在一起,但能够进一步处理。任何帮助表示赞赏/

我的内部连接表看起来像

在此处输入图像描述

标签: sql

解决方案


select experiment_id,  
       (count(case when experiment_assignment = 'test' and subscription_event = “subscriptipon_start” then user_id end)*100 /  
        count(case when experiment_assignment = 'test' and subscription_event = “trial_start” then user_id )
      ) as test_conversion_rate,  
       (count(case when experiment_assignment = 'control' and subscription_event = “subscriptipon_start” then user_id end) * 100 /  
        count(case when experiment_assignment = 'control' and subscription_event = “trial_start” then user_id end)  
      ) as control_conversion_rate  
from experiment inner join subscription  
     on user_id  
group by experiment_id;  

推荐阅读