题解 | #牛客直播各科目同时在线人数#

牛客直播各科目同时在线人数

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

全部评论

相关推荐

02-28 01:18
已编辑
南昌大学 后端工程师
后测速成辅导一两个月...:把开源经历放个人项目上边应该更好,就像大部分人都把实习经历放个人项目上边
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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