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

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

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

with a as
(
    select uid,in_time,row_number() over(partition by uid order by in_time) r1,
      row_number() over(partition by uid order by in_time desc) r2,
        datediff(max(in_time) over (order by in_time desc),in_time) cha
        
    from tb_user_log
),
    b as 
(
    select uid,   
    min(case when r1=1 and cha<=6 then 0
         when r1!=1 and r2=1 and cha<=6 then 1
         when r2=1 and cha>=7 and cha<=29 then 2
         when r2=1 and cha>=30 then 3
    end) name1
    from a
    group by uid 
)

select case name1 
when 0 then '新晋用户'
when 1 then '忠实用户'
when 2 then '沉睡用户'
when 3 then '流失用户'
end ,round(count(name1)/(select count(*) from b),2)
from b
group by name1
order by 2 desc
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-01 11:47
点赞 评论 收藏
分享
05-19 15:21
已编辑
华南农业大学 Java
白火同学:你才沟通了200,说实话,北上广深杭这里面你连一座城市的互联网公司都没投满呢,更别说还有各种准一线二线城市了。等你沟通突破了三位数,还没结果再考虑转行的事吧。
点赞 评论 收藏
分享
今天 12:20
门头沟学院 运营
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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