我也是,一直灰在那里,哎
点赞 3

相关推荐

SQL165 统计活跃间隔对用户分级结果分析题目后可得:# 新晋用户:全表最大时间(今天)-注册时间# 沉睡用户:全表最大时间(今天)-最近登录>=7 and 全表最大时间(今天)-最近登录# 流失用户:全表最大时间(今天)-最近登录>=30# 忠实用户:全表最大时间(今天)-最近登录=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_loggroup by     uid),t2 as(select    uid,    case    when datediff(max_intime,min_in_time) when datediff(max_intime,max_in_time)>=7 and datediff(max_intime,max_in_time) when datediff(max_intime,max_in_time)>=30 then '流失用户'    else '忠实用户'end user_grade from     t1group by    uid)select     user_grade    ,round(count(uid)/(select count(distinct uid) from tb_user_log),2) ratiofrom    t2group by    user_gradeorder by    ratio desc
点赞 评论 收藏
分享
09-26 17:10
毛坦厂中学 C++
点赞 评论 收藏
分享
牛客网
牛客企业服务