SQL关于每日新增用户、次留存率、七日留存率等问题

1.数据下载(七周成为数据分析师的原数据):
https://pan.baidu.com/s/1ZWQKm1zy9xnNpUfo9Uc9WA
2.将数据CSV导入到SQL中
如下
SQL关于每日新增用户、次留存率、七日留存率等问题_第1张图片
3.思路以及代码
–关于每天新增用户(先找出第一次登陆的用户(即新增用户)然后用时间分组):

select convert(varchar(10),first,111) 时间,count(*) 新增用户 from 
(select userid,min(paytime) first from order_info group by userid) A 
group by convert(varchar(10),first,111);

–次留用户(先找出第一次登陆的用户在在一天后仍然登陆(即次留存)然后)

select convert(varchar(10),paytime,111) 时间,count(*) 次留人数 from 
(select distinct A.userid,B.first,A.paytime from order_info A,(select userid,min(paytime) first from order_info group by userid) B 
where A.userid=B.userid and datediff(day,B.first,A.paytime)=1) C
group by convert(varchar(10),paytime,111) order by convert(varchar(10),paytime,111);

次留率=次留用户人数/新增用户人数
–7日留存用户(即第七次登陆的用户在一天后仍然登陆)

select convert(varchar(10),paytime,111) 时间,count(*) 次留人数 from 
(select distinct A.userid,B.first,A.paytime from order_info A,(select userid,min(paytime) first from order_info group by userid) B 
where A.userid=B.userid and datediff(day,B.first,A.paytime)=7) C
group by convert(varchar(10),paytime,111) order by convert(varchar(10),paytime,111)

7日留率=7日留存用户人数/新增用户人数

你可能感兴趣的:(SQL)