with a as(
select
course_id,
in_datetime as time,
1 as diff
from
attend_tb
union all
select
course_id,
out_datetime as time,
-1 as diff
from
attend_tb
),
b as (
select
course_id,
sum(diff)over(partition by course_id order by time,diff desc) as nums
from
a
),
c as (
select
ct.course_id,
ct.course_name,
max(b.nums) as max_num
from
course_tb as ct
left join b on b.course_id = ct.course_id
group by
ct.course_id,
ct.course_name
)
select * from c

京公网安备 11010502036488号