假设数据已经以SQL的形式加载进来对用户行为:user、item、product_category、action、date和hour,并以逗号分隔。 行为类型:点击pv、购买buy、加购cart、fav收藏的数据中统计跳失率(点击单页面即退出的用户/全部点击用户数)
时间: 2023-07-10 10:43:20 浏览: 88
SQL截取以逗号分隔的字符串
5星 · 资源好评率100%
为了统计跳失率,我们需要先计算出所有点击过页面的用户数和仅点击了一次页面并退出的用户数。可以使用以下SQL查询语句实现:
```
SELECT COUNT(DISTINCT user) AS total_users,
COUNT(DISTINCT CASE WHEN actions = 'pv' THEN user END) AS clicked_users,
COUNT(DISTINCT CASE WHEN actions = 'pv' AND EXISTS (SELECT 1 FROM data WHERE user = d.user AND actions <> 'pv') THEN user END) AS bounced_users,
COUNT(DISTINCT CASE WHEN actions = 'pv' AND NOT EXISTS (SELECT 1 FROM data WHERE user = d.user AND actions <> 'pv') THEN user END) AS single_page_users
FROM data d;
```
解释一下查询语句:
- 第一个SELECT子句统计了总的用户数。
- 第二个SELECT子句统计了点击过页面的用户数,即actions字段为'pv'的用户数。
- 第三个SELECT子句统计了仅点击了一次页面并退出的用户数,即actions字段为'pv'且该用户在其他记录中没有其他行为的用户数。
- 第四个SELECT子句统计了仅点击了一次页面但并没有退出的用户数,即actions字段为'pv'且该用户在其他记录中还有其他行为的用户数。
最终结果中跳失率为bounced_users / clicked_users。
阅读全文