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

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

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

select up.university, count(qpd.question_id) / count(distinct up.device_id) avg_answer_cnt
from user_profile up
inner join question_practice_detail qpd
on up.device_id = qpd.device_id
group by up.university
order by up.university

这里平均每个用户答题数量是答题总数/答题人数,而不是除以该学校总人数。

因此选用inner join 来获取参与了答题的人和答题详情,而在链接后,对于多个答题详情可能是同一个用户的情况,需要使用distinct对device_id进行去重。

关联条件是device_id

根据学校再进行分组。

如果包含未答题的人数来求平均值的话,使用left join即可,即 即使用户未关联上,但count(question_id)不变,count(device_id)包含了未答题的用户。

全部评论

相关推荐

点赞 评论 收藏
分享
头像
11-27 14:28
长沙理工大学
刷算法真的是提升代码能力最快的方法吗? 刷算法真的是提升代码能力最快的方法吗?
牛牛不会牛泪:看你想提升什么,代码能力太宽泛了,是想提升算法能力还是工程能力? 工程能力做项目找实习,算法也分数据结构算法题和深度学习之类算法
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务