题解 | #统计每个学校的答过题的用户的平均答题数#

统计每个学校的答过题的用户的平均答题数

https://www.nowcoder.com/practice/88aa923a9a674253b861a8fa56bac8e5

select university,count(question_id)/count(distinct b.device_id) as avg_answer_cnt
from (select device_id,university,active_days_within_30 from user_profile) a left join question_practice_detail b on a.device_id=b.device_id
group by university
having avg_answer_cnt is not NULL

首先连接,连接时本着有用的才连接,所以先从user表中select一部分列做连接,连接后按学校分组,此时的结果表中会有两列device_id,分别代表学校学生设备id和参与答题的学生设备id,所以在计算平均答题率时分母为参与答题学生设备id即b.device_id,由于这列数据有重复值(一个学生可以答多道题目),故要distinct去重,最后的having语句是为了避免一个学校没有学生答题时答题率为None的情形(此时时不必要展示的)

感觉这种方法有点繁琐了,有更简单的可以讨论下。

全部评论

相关推荐

不愿透露姓名的神秘牛友
05-01 13:13
ecece:这么明目张胆虚报就业率啊
点赞 评论 收藏
分享
nus22016021404:兄弟,你这个简历撕了丢了吧,就是一坨,去找几个项目,理解项目流程,看几遍就是你的了,看看八股就去干了,多看看牛客里别人发出来的简历,对着写,你这写的啥啊,纯一坨
点赞 评论 收藏
分享
06-19 12:33
安徽大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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