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

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

https://www.nowcoder.com/practice/fe24c93008b84e9592b35faa15755e48?tpId=268&tqId=2285343&ru=/exam/oj&qru=/ta/sql-factory-interview/question-ranking&sourceUrl=%2Fexam%2Foj

select artical_id,max(person) max_uv
from(
select artical_id,
sum(diff) over (partition by artical_id order by dt,diff desc) as person#这个地方的diff desc很关键,表示同一时刻同一篇文章有人进也有人出,先记录进的,再记录出的。
from
(
select artical_id,in_time dt,1 diff
from tb_user_log
where artical_id!=0
union all
select artical_id,out_time dt,-1 diff
from tb_user_log
where artical_id!=0
order by 1,2) t1)t2
group by artical_id
order by max_uv desc

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务