题解 | #直播开始时直播间在线人数#date_format
牛客直播开始时各直播间在线人数
https://www.nowcoder.com/practice/bdd30e83d47043c99def6d9671bb6dbf
select a.course_id ,course_name, # 取出分组后的 in_datetime的time 要早于它开始的时间 count(distinct user_id) as online_num # 下面的having 已经筛选除了 # 上面的只需要计数 from course_tb a, attend_tb b where a.course_id = b.course_id and '19:00' BETWEEN DATE_FORMAT(in_datetime,'%H:%i') and DATE_FORMAT(out_datetime,'%H:%i') group by a.course_id,course_name # 请你统计直播开始时(19:00),各科目的在线人数 # and '19:00' BETWEEN DATE_FORMAT(in_datetime,'%H:%i') and DATE_FORMAT(out_datetime,'%H:%i') order by a.course_id asc; /* 使用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) */ /* 第一种: 1 2 date_format(a.in_datetime,'%H:%i:%s') <= '19:00:00' date_format(a.out_datetime,'%H:%i:%s') >= '19:00:00' 第二种: 1 2 right(a.in_datetime,8) <= '19:00:00' right(a.out_datetime,8) >= '19:00:00' 第三种: 1 2 time(a.in_datetime) <= '19:00:00' time(a.out_datetime) >= '19:00:00' */
SQL错题 文章被收录于专栏
每天学习一遍 刷题刷题 越刷越强!