此题共包含两张表:
表1:course_tb
表2:attend_tb
要解决的问题:
请你统计直播开始时(19:00),各科目的在线人数,按照course_id升序排序
解题思路:
- 统计直播开始时的在线人数(即进入时间在19:00点前,退出时间在19:00后)
- 按科目ID分组,course_id排序
知识点:
使用date_format(date,format)提取日期的情况较多,较少使用提取时间,这里补充一下提取格式:
format 规定日期/时间的输出格式
- %T 时间, 24-小时 (hh:mm:ss)
- %r 时间,12-小时(hh:mm:ss AM 或 PM)
- %H 小时 (00-23)
- %h 小时 (01-12)
- %i 分钟,数值(00-59)
- %S 秒(00-59)
- %s 秒(00-59)
SELECT atb.course_id, ctb.course_name, count(atb.course_id) online_num
from attend_tb atb
left join course_tb ctb
on atb.course_id = ctb.course_id
where '19:00' BETWEEN DATE_FORMAT(in_datetime,'%H:%i') and DATE_FORMAT(out_datetime,'%H:%i')
GROUP BY atb.course_id,ctb.course_name
ORDER BY atb.course_id