题解 | #每篇文章同一时刻最大在看人数#
每篇文章同一时刻最大在看人数
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