SQL165 统计活跃间隔对用户分级结果
SQL165 统计活跃间隔对用户分级结果
分析题目后可得:
# 新晋用户:全表最大时间(今天)-注册时间<7
# 沉睡用户:全表最大时间(今天)-最近登录>=7 and 全表最大时间(今天)-最近登录<=29
# 流失用户:全表最大时间(今天)-最近登录>=30
# 忠实用户:全表最大时间(今天)-最近登录<7 and 全表最大时间(今天)-注册时间>=7
故首先要找出每个用户的注册时间、最近登录时间、全表最大时间(作为今天),然后根据题意对每个用户进行分级,最后分组求出每个级别的人数并除以总用户数(select count(distinct uid) from tb_user_log),即可得出每个级别的占比情况
with t1 as(
select
uid
,(select max(date(in_time)) from tb_user_log) as max_intime # 全表最大时间(今天)
,max(date(in_time)) as max_in_time # 每个用户登录的最大时间(最近登录)
,min(date(in_time)) as min_in_time # 每个用户登录的最小时间(注册时间)
from
tb_user_log
group by
uid
),t2 as(
select
uid,
case
when datediff(max_intime,min_in_time)<7 then '新晋用户'
when datediff(max_intime,max_in_time)>=7 and datediff(max_intime,max_in_time)<=29 then '沉睡用户'
when datediff(max_intime,max_in_time)>=30 then '流失用户'
else '忠实用户'end user_grade
from
t1
group by
uid
)
select
user_grade
,round(count(uid)/(select count(distinct uid) from tb_user_log),2) ratio
from
t2
group by
user_grade
order by
ratio desc
分析题目后可得:
# 新晋用户:全表最大时间(今天)-注册时间<7
# 沉睡用户:全表最大时间(今天)-最近登录>=7 and 全表最大时间(今天)-最近登录<=29
# 流失用户:全表最大时间(今天)-最近登录>=30
# 忠实用户:全表最大时间(今天)-最近登录<7 and 全表最大时间(今天)-注册时间>=7
故首先要找出每个用户的注册时间、最近登录时间、全表最大时间(作为今天),然后根据题意对每个用户进行分级,最后分组求出每个级别的人数并除以总用户数(select count(distinct uid) from tb_user_log),即可得出每个级别的占比情况
with t1 as(
select
uid
,(select max(date(in_time)) from tb_user_log) as max_intime # 全表最大时间(今天)
,max(date(in_time)) as max_in_time # 每个用户登录的最大时间(最近登录)
,min(date(in_time)) as min_in_time # 每个用户登录的最小时间(注册时间)
from
tb_user_log
group by
uid
),t2 as(
select
uid,
case
when datediff(max_intime,min_in_time)<7 then '新晋用户'
when datediff(max_intime,max_in_time)>=7 and datediff(max_intime,max_in_time)<=29 then '沉睡用户'
when datediff(max_intime,max_in_time)>=30 then '流失用户'
else '忠实用户'end user_grade
from
t1
group by
uid
)
select
user_grade
,round(count(uid)/(select count(distinct uid) from tb_user_log),2) ratio
from
t2
group by
user_grade
order by
ratio desc
全部评论
相关推荐
10-23 15:58
华中农业大学 Java
LZStarV:冲就好了,就算真的是字节也冲,面评脏了大不了等三四个月就淡了,而且等到那个时候实力进步了选择还多,何必拘泥于字节 点赞 评论 收藏
分享
11-14 08:52
山东工商学院 Java
吴鹏阳:这个老师如果爱举报,你这门课确实可能挂科,这没办法。但是辅导员所谓的延毕,,怎么说呢,毕业生的就业率可是辅导员的一大考核,他咋可能为了一个逃课实习去损害自己的利益呢? 点赞 评论 收藏
分享