题解 | #牛客直播各科目同时在线人数#
牛客直播各科目同时在线人数
http://www.nowcoder.com/practice/d69677e41f9a4bf3b3ed7a42573e9490
-又是一道求同时在线人数,老生常谈啦!还是那个套路,这就不多解释了
with t as(
select
a.course_id,
course_name,
in_datetime,
out_datetime
from attend_tb a
left join course_tb b
on a.course_id=b.course_id)
select
course_id,
course_name,
max(num) as max_num
from
(select
course_id,
course_name,
sum(diff) over (partition by course_id order by dt,diff desc) num
from
(
select
course_id,
course_name,
in_datetime dt,
1 diff
from t
union all
select
course_id,
course_name,
out_datetime dt,
-1 diff
from t)t1)t2
group by course_id,course_name
order by course_id