一、知识点总结

记住这个小知识点:
求某一瞬时同时在线人数的判断条件:  ‘瞬时时间’ between ‘进入时间’ AND ‘离开时间’

二、解题步骤

题目:统计直播开始时(19:00),各科目的在线人数
  • 开播人数:用户的进入时间在19点前(包含19点),离开时间在19点后(包含19点)
  • 即,开播时间在进入后离开前,即 开播时间 between ‘进入时间’ and ‘离开时间’
'19:00' BETWEEN DATE_FORMAT(in_datetime,'%H:%i')  and DATE_FORMAT(out_datetime,'%H:%i')
完整代码:
SELECT course_id,course_name,COUNT(DISTINCT user_id) online_num 
FROM attend_tb JOIN course_tb USING(course_id)
WHERE '19:00' BETWEEN DATE_FORMAT(in_datetime,'%H:%i') and DATE_FORMAT(out_datetime,'%H:%i')
GROUP BY course_id,course_name ORDER BY course_id;