题解 | #牛客直播各科目出勤率#
牛客直播各科目出勤率
https://www.nowcoder.com/practice/0cab547df4f0430b93042128f445d899
-- 思路: -- 1.attend_tb表 先分组聚合统计出每个学员每门课上课的总时长,并筛选出上课时长>=10分钟的学员信息 -- 2.behavior_tb表关联course_tb表统计出每个课程报名的人数 -- 3.1与2结果表inner join 分组统计每门课程的出勤率[注意格式化] select t1.course_id, t2.course_name, round((count(t1.user_id) / t2.sign_cnt)*100, 2) as 'attend_rate(%)' from( select user_id, course_id, sum(timestampdiff(MINUTE,in_datetime, out_datetime)) as attend_total_time from attend_tb group by user_id,course_id having sum(timestampdiff(MINUTE, in_datetime, out_datetime)) >= 10 ) t1 inner join ( select c.course_name, b.course_id, count(distinct b.user_id) as sign_cnt from behavior_tb b left join course_tb c on b.course_id = c.course_id where b.if_sign = 1 group by c.course_name,b.course_id ) t2 on t1.course_id = t2.course_id group by t1.course_id,t2.course_name order by t1.course_id asc
SQL大厂面试题 文章被收录于专栏
牛客网sql大厂面试题题解~