题解 | #牛客直播开始时各直播间在线人数#
牛客直播开始时各直播间在线人数
https://www.nowcoder.com/practice/bdd30e83d47043c99def6d9671bb6dbf
with courseList as ( select distinct user_id, course_id, course_name from course_tb join attend_tb using (course_id) where date(in_datetime) = date(course_datetime) #判断观看的日子是直播当天 and date_format(in_datetime,'%H%i%s') <= '190059' #提取时间时分秒 与19:00:59 比较 and date_format(out_datetime,'%H%i%s') > '190100' # 判断离去的时间大于19:00:01 ) #因为有用户会在直播当天有多次的进出动作,包括在直播开始的时候所以应该筛选出唯一值 select course_id, course_name, count(user_id) from courseList group by course_id, course_name
本题难度不大,难度在于在直播开始的时候会有多个用户在19点有进出动作,所以应该先通过子查询找出唯一user_id,再根据couse_id和couse_name聚类。