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

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

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)包含了未答题的用户。

全部评论

相关推荐

牛客765689665号:没有实习是硬伤,央国企看学历
点赞 评论 收藏
分享
神哥不得了:神哥来啦~专业技能的话建议不要前面空那么多,八股的话建议先把高频top 50的八股多巩固几遍,千万不要看那些假高频八股。项目的话,建议换两个高质量的项目上去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务