官方题解 | #某音短视频每个直播间最大同时在线人数#

某音短视频每个直播间最大同时在线人数

http://www.nowcoder.com/practice/149704004a5b475fa47b120293d624c3

step1: 查找room_id,user_id,进入时间,并将进入时间记为tms,将进入行为tag标记为1;

step2: 查找room_id,user_id,离开时间,并将离开时间记为tms,将离开行为tag标记为-1;

step3: 将step1,step2中得到的两张表全连接;

step4: 利用窗口函数按照room_id分组,按照所有时间tms排序,求和;

step5: 按照room_id分组,查找每个room_id最大同时在线人数;

step6: 按照最大同时在线人数降序排序。

select room_id, max(num) as max_num

from(

select

room_id,

user_id,

sum(tag) over(partition by room_id order by tms) as num

from(

select

room_id,

user_id,

in_time as tms,

1 as tag

from user_view_tb

union all

select

room_id,

user_id,

out_time as tms,

-1 as tag

from user_view_tb

)a1

)a

group by room_id order by max_num desc;

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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