with a as(
    select
        ct.course_id,
        ct.course_name,
        count(distinct at.user_id) as online_num
    from 
        attend_tb as at
        left join course_tb as ct on at.course_id=ct.course_id
    where
        time(at.in_datetime)<='19:00:00' and time(at.out_datetime)>='19:00:00'
    group by
        ct.course_id,
        ct.course_name
    order by 
        ct.course_id
)
select * from a