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

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

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

# 选出最大人数
select 
    artical_id,
    max(sum_p) max_ux
from(
#获取每个文章的用户开窗,根据时间排序,sum加flag字段的值(这个操作就可以算出当前时刻,在线人数)
select artical_id,
       # time,
        sum(flag) over(partition by artical_id order by time rows between unbounded preceding and current row) `sum_p`
from(
##把登录和登出先分离(union形成一个新表)
#登录操作,并且打标记为1
select 
    uid,
    artical_id,
    in_time `time`,
    1 `flag`
from tb_user_log
where artical_id!=0 and artical_id is not null
union
#登出操作,并且打标记为-1
select 
    uid,
    artical_id,
    out_time `time`,
    -1 `flag`
from tb_user_log
where artical_id!=0 and artical_id is not null)t1)t2
#分组条件
group by artical_id 
#按照最大人数降序
order by max_ux desc

#刷题#
全部评论

相关推荐

03-16 11:07
南开大学 Java
牛马人的牛马人生:快手卡实习经历的
点赞 评论 收藏
分享
01-30 09:45
燕山大学 Java
喵_coding:这种直接跑就完事了 哪有毕业了才签合同 任何offer和三方都没有的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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