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

with t as(
    select uid,
    max(in_time) as recent_in,
    min(in_time) as first_in,
    (select max(in_time) from tb_user_log) as today
    from tb_user_log
    group by uid
),
t1 as(
    select uid,
    case
        when datediff(today,recent_in)<=6 and datediff(today,first_in)>6 then '忠实用户'
        when datediff(today,first_in)<=6 then '新晋用户'
        # when 6<datediff(today,recent_in)<=30 then '沉睡用户'
        when  datediff(today,recent_in)>=30 then '流失用户'
        else '沉睡用户'
    end as user_grade
    from t
)
select user_grade,
round(count(user_grade)/(select count(*) from t1),2) as ratio
from t1
group by user_grade
order by ratio desc

全部评论

相关推荐

点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-27 14:11
很喜欢小米的新车,校招薪资每月22k,攒多久能买?
测试糕手手:别看工资,先看现金流存款。有50W存款以上再考虑,车是消耗品,选适合自己的重要。你有钱就当我没说过
点赞 评论 收藏
分享
06-26 15:33
青岛工学院 Java
积极的秋田犬要冲国企:他现在邀请我明天面试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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