sql语句实现计算转化率,即:转化率 = 购买行为数量 / 加购行为数量
时间: 2023-07-11 14:37:52 浏览: 112
假设我们的数据表名为“user_behavior”,可以使用以下的 SQL 语句计算加购-购买的转化率:
```sql
SELECT
COUNT(DISTINCT CASE WHEN behavior_type = 'cart' THEN user_id ELSE NULL END) AS cart_users,
COUNT(DISTINCT CASE WHEN behavior_type = 'buy' THEN user_id ELSE NULL END) AS buy_users,
COUNT(DISTINCT CASE WHEN behavior_type = 'buy' THEN user_id ELSE NULL END) /
COUNT(DISTINCT CASE WHEN behavior_type = 'cart' THEN user_id ELSE NULL END) AS conversion_rate
FROM
user_behavior;
```
解释一下这个查询语句:
首先,我们使用 `COUNT(DISTINCT ...)` 函数统计加购行为和购买行为的用户数量,分别使用 `CASE WHEN` 条件语句对不同的行为类型进行筛选,即:
- `CASE WHEN behavior_type = 'cart' THEN user_id ELSE NULL END` 表示如果行为类型是加购,则返回用户 ID,否则返回 NULL。
- `CASE WHEN behavior_type = 'buy' THEN user_id ELSE NULL END` 表示如果行为类型是购买,则返回用户 ID,否则返回 NULL。
然后,我们将购买行为的用户数量除以加购行为的用户数量,计算得到转化率,即:
- `COUNT(DISTINCT CASE WHEN behavior_type = 'buy' THEN user_id ELSE NULL END) / COUNT(DISTINCT CASE WHEN behavior_type = 'cart' THEN user_id ELSE NULL END)`
最后,使用 `AS` 关键字给各个字段取个别名,方便后续的处理。