题解 | #各用户活跃分层人数统计#

各用户活跃分层人数统计

https://www.nowcoder.com/practice/d76cc30d1af9465abeff3ad663d7e60e

with tiaojian as (
select 
t.id,
t.uid,
t.login_date,
t.zj,
t.zz,
t.now_day,
t.pt
from(
select 
id,uid,
login_date,
max(login_date)over(partition by uid) as  zj,
min(login_date)over(partition by uid) as zz,
max(login_date)over() as now_day,
lead(login_date,1)over(partition by uid order by login_date desc) as pt,
row_number()over(partition by uid order by login_date desc)  as pm
from user_login_tb
)  as t 
where
t.pm=1
),tiaojian1 as (
select
uid,
case when datediff(now_day,zj)>=30 then "流失用户"
     when datediff(now_day,zj) between 7 and 29 then "沉默用户"
     when datediff(now_day,zz)<7 then "新增用户"
     when datediff(now_day,zj)=0 and datediff(now_day,pt)>30 then "回流用户"
     when datediff(now_day,zj)<=6 and datediff(now_day,pt)<=29
     then "忠实用户"
     end as user_grade
from tiaojian
)


select 
user_grade,
count( uid) as num,
round(
count(uid)/(select  count(distinct uid) from tiaojian1),2) as ratio
from tiaojian1
group by user_grade
order by ratio desc

全部评论

相关推荐

程序员牛肉:你这简历有啥值得拷打的?在牛客你这种简历一抓一大把,也就是个人信息不一样而已。 关键要去找亮点,亮点啊,整个简历都跟流水线生产出来的一样。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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