一开始做麻烦了,按照之间求瞬时最大uv的方法来做,结果发现完全没必要

  1. 先找到 19:00 上课情况,就是 in-time 以及out-time覆盖 19:00这个时间点的
select *
    from attend_tb
    inner join course_tb
    using(course_id)
    where '19:00:00' between time(in_datetime)  and time(out_datetime)
  1. 然后按照course_id, course_name分组统计uv就好,在按照course_id升序排列
select
    course_id,
    course_name,
    count(distinct user_id) as online_num
    from attend_tb
    inner join course_tb
    using(course_id)
    where '19:00:00' between time(in_datetime)  and time(out_datetime)
    GROUP BY course_id, course_name
    order by course_id