题解 | 统计活跃间隔对用户分级结果

统计活跃间隔对用户分级结果

https://www.nowcoder.com/practice/6765b4a4f260455bae513a60b6eed0af

select user_grade,round(count(*)/user_cnt,2) as ratio
from
(select distinct uid,(select count(distinct uid) from tb_user_log ) as user_cnt,
    case 
    when last_dt_diff >=30 then '流失用户'
    when last_dt_diff >=7 then '沉睡用户'
    when new_dt_diff <7 then '新晋用户'
    else '忠实用户'
    end as user_grade
from(
    select uid,
    timestampdiff(day,date(max(out_time)),(select date(max(out_time)) from tb_user_log)) as last_dt_diff,
    timestampdiff(day,date(min(in_time)),(select date(max(out_time)) from tb_user_log)) as new_dt_diff
from tb_user_log
group by uid
)a)b
group by user_grade
order by ratio desc

闭包是等号

从0开始的SQL之旅 文章被收录于专栏

从0开始的SQL之旅

全部评论

相关推荐

03-03 23:12
已编辑
北京邮电大学 Java
书海为家:我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务