sql - 寻找转化率
问题描述
我有两个列表,每个项目的订阅结果。我需要知道每个实验的转化率。
我的桌子是:
我想要的结果是
转换是除试用开始事件之外还有订阅开始事件的任何用户(所有用户都有试用开始事件)。如果用户同时在多个实验中,可以将它们计入每个实验的转化率,也希望每个实验只返回一行。
我已经完成了一次内部连接以将订阅事件和实验 ID 放在一起,但能够进一步处理。任何帮助表示赞赏/
我的内部连接表看起来像
解决方案
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;
推荐阅读
- python - Tkinter如何在按下按钮后显示更多元素
- c++ - 如何编写向用户询问两个整数并在 C++ 中按以下顺序显示的内容?
- javascript - 为什么递归的例子之一有效而一个无效?请解释其工作原理
- oracle - 如何使用 Spring Data JPA(Hibernate) ORM 映射到来自其他模式的 Oracle 表?
- actions-on-google - Actions on Google 启动自定义操作(不是 main actions.intent.MAIN)
- javascript - 我的功能是验证表单中的复选框不适用于 jquery
- python - 读取和写入存储在 Django Models.py 中的 PDF
- firebase - 在 Play 计费示例应用中部署后端服务器步骤
- python - 如何对 .json 文件进行下采样
- c# - 如何在我的字节数组中包含这个字节?