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

牛客直播各科目出勤率

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

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

1)计算每门课程报名人数;
SELECT course_id,COUNT(DISTINCT user_id) application_cnt FROM behavior_tb WHERE if_sign=1 GROUP BY course_id
2)计算每门课程在线10分钟以上的用户数;
SELECT course_id,COUNT(DISTINCT user_id) attend_cnt FROM attend_tb WHERE TIMESTAMPDIFF(minute,in_datetime,out_datetime)>=10 GROUP BY course_id;
3)计算出勤率,输出结果按course_id升序排序
SELECT course_id,course_name,ROUND(attend_cnt*100/application_cnt,2) 'attend_rate(%)'
FROM(SELECT course_id,COUNT(DISTINCT user_id) application_cnt FROM behavior_tb WHERE if_sign=1 GROUP BY course_id) AS t1
JOIN (SELECT course_id,COUNT(DISTINCT user_id) attend_cnt FROM attend_tb WHERE TIMESTAMPDIFF(minute,in_datetime,out_datetime)>=10 GROUP BY course_id) AS t2 USING(course_id)
JOIN(course_tb) USING(course_id) ORDER BY course_id;



SQL解题集 文章被收录于专栏

这是牛客SQL相关的解题集

全部评论
最开始的时候,我直接用所有听课用户数来作为报名用户数计算,再次审题发现,报名用户数应该看behavior_tb这张表中if_sign=1的用。
1 回复 分享
发布于 2022-04-11 20:58
在线10分钟没有要求连续吧
点赞 回复 分享
发布于 03-25 22:02 北京

相关推荐

不愿透露姓名的神秘牛友
07-24 13:36
点赞 评论 收藏
分享
评论
15
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务