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

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

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

with sumList as (
    select uid,artical_id,in_time as time, 1 as uv from tb_user_log
    union all 
    select uid,artical_id,out_time as time, -1 as uv from tb_user_log
)
select artical_id,max(uv) as max_uv
 from (
select artical_id,time,sum(uv)over(partition by artical_id order by time asc, uv desc) as uv from sumList where artical_id like '900_' 
) t1 
group by artical_id
order by max_uv desc

本题有个难点在于,计算最大人数需要先+后减,也就是在某一个时间段中需要先+1 后-1,所以在over()窗口函数中分区的顺序需先time asc,uv desc

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 14:23
点赞 评论 收藏
分享
屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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