题解 | #每篇文章同一时刻最大在看人数#

每篇文章同一时刻最大在看人数

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

-- “同一时刻有进入有离开时,先记录增加后记录减少” ,进入+1,退出-1,可以使用sum窗口函数,对文章进行分组,然后先日期升序,再对人数进行降序排列
select artical_id,max(sum_cnt) as max_uv 
from (
select artical_id,sum(diff) over(partition by artical_id order by dt ,diff desc) as sum_cnt
from (
select uid ,artical_id,in_time dt ,1 diff
from tb_user_log 
where artical_id <> 0 

union all 
select uid ,artical_id,out_time dt ,-1 diff
from tb_user_log 
where artical_id <> 0 ) t1 ) t2 
group by artical_id 
order by max_uv desc 

全部评论

相关推荐

头像
不愿透露姓名的神秘牛友
05-28 17:15
猿辅导 Java后端日常实习 800一天
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务