• 进入直播间记人数+1
  • 出直播间记人数-1
  • 使用sum(人数)over(按课程id分组 按进出时间,人数降序)
  • 按课程分组找到前一步的最大值
select
course_id,
course_name,
max(num) as maxnum
from(
select
course_id,
course_name,
sum(u)over(partition by course_id order by t,u desc) as num
from(
select 
course_id,
course_name,
in_datetime as t,
1 as u
from attend_tb
join course_tb using(course_id)

union all 

select 
course_id,
course_name,
out_datetime as t,
-1 as u
from  attend_tb
join course_tb using(course_id)
)t1

)t2
group by course_id,course_name