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

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

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

select 
    artical_id,max(uvcnt) as max_uv
from (select 
    artical_id,in_time,uv,
    sum(uv) over(partition by artical_id order by in_time asc,uv desc) uvcnt
from (select uid,artical_id,in_time,1 as uv from tb_user_log 
union all 
select uid,artical_id,out_time,-1 as uv from tb_user_log ) t where artical_id != 0) t group by artical_id order by max_uv desc

1.首先把进入设为1 退出设为-1 根据union all 进行两个表的组合

2.窗口函数 计算artical_id的uv和 按照不同的时间进行排序

3.根据artical_id分组 找最大的uv和

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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