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

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

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

select 
    user_grade,
    round(count(uid)/(select count(distinct uid) from tb_user_log) ,2) as ratio
from(
    select 
        uid,
        case when rct_dt > date_sub('2021-11-04',interval 7 day) and ltr_dt < date_sub('2021-11-04',interval 7 day) then '忠实用户'
        when rct_dt > date_sub('2021-11-04',interval 7 day) and ltr_dt > date_sub('2021-11-04',interval 7 day) then '新晋用户'
        when rct_dt <= date_sub('2021-11-04',interval 30 day) and ltr_dt <= date_sub('2021-11-04',interval 30 day) then '流失用户'
        else '沉睡用户' end as user_grade
    from(
        select 
            distinct uid,
            min(date(in_time)) over (partition by uid) as ltr_dt,
            max(date(in_time)) over (partition by uid) as rct_dt
        from 
            tb_user_log
        order by uid) as a) as b
group by user_grade
order by ratio desc,user_grade

全部评论

相关推荐

03-24 17:57
门头沟学院 Java
yakuso:你这头像哈哈哈
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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