SQL189 牛客直播各科目同时在线人数
SQL189 牛客直播各科目同时在线人数
参考相似题目:SQL88 输出播放量最高的视频-CSDN博客
思路完全一样。。
WITH-- 生成所有事件点(开始+1,结束-1)events AS (SELECTcourse_id,in_datetime AS event_time,1 AS event_typeFROMattend_tbUNION ALLSELECTcourse_id,out_datetime AS event_time,-1 AS event_typeFROMattend_tb),-- 按时间排序并计算累计同时播放数running_counts AS (SELECTcourse_id,event_time,SUM(SUM(event_type)) OVER (PARTITION BYcourse_idORDER BYevent_time ROWS UNBOUNDED PRECEDING) AS concurrent_playFROMeventsGROUP BYcourse_id,event_time),-- 找出每个视频的最大同时播放数max_concurrent AS (SELECTcourse_id,MAX(concurrent_play) AS max_numFROMrunning_countsGROUP BYcourse_id)
SELECTcourse_id,course_name,max_num
FROMmax_concurrentjoin course_tb using (course_id)
ORDER BYcourse_id