题解 | #牛客直播各科目同时在线人数#
牛客直播各科目同时在线人数
https://www.nowcoder.com/practice/d69677e41f9a4bf3b3ed7a42573e9490
#需求:统计每个科目最大同时在线人数
#输出:course_id、course_name、max_num(瞬时人数)
#要求:输出按course_id排序
#思路:计算瞬时,进入为1,离开为-1,编码加union all,之后建立窗口函数对瞬时求和,max取最大值+group by聚合区分科目,完成
select course_id,course_name,max(ck1) max_num
from(
select course_id,course_name,
sum(tt2)over(partition by course_id order by tt1,tt2 desc) ck1
from(
select course_id,in_datetime tt1,1 tt2 from attend_tb
union all
select course_id,out_datetime tt1,-1 tt2 from attend_tb
) t1
join course_tb using(course_id)
) t2
group by course_id,course_name
order by course_id

