题解 | #牛客直播各科目出勤率#

牛客直播各科目出勤率

http://www.nowcoder.com/practice/0cab547df4f0430b93042128f445d899

此题共包含三张表:

表1:course_tb

表2:attend_tb

表3:behavior_tb

要解决的问题:

请你统计每个科目的出勤率(attend_rate(%),结果保留两位小数),出勤率=出勤(在线时长10分钟及以上)人数 / 报名人数,输出结果按course_id升序排序

解题思路:

  1. 统计出勤人数和报名人数(注意剔除重复的user_id)
  2. 输出结果按course_id升序排序
SELECT t1.course_id, 
	   course_name, 
	   ROUND((online_num / sum(if_sign))*100,2) `attend_rate(%)`
FROM( 
	    SELECT atb.course_id course_id, 
			  ctb.course_name course_name, 
			  count(DISTINCT atb.user_id) online_num
        from attend_tb atb
        LEFT JOIN course_tb ctb
        on atb.course_id = ctb.course_id
        where TIMESTAMPDIFF(minute,in_datetime,out_datetime) > '10'
        GROUP BY atb.course_id ) t1
left join behavior_tb btb
on t1.course_id = btb.course_id
GROUP BY t1.course_id,course_name
ORDER BY course_id

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务