题解 | #统计每个学校的答过题的用户的平均答题数#
统计每个学校的答过题的用户的平均答题数
https://www.nowcoder.com/practice/88aa923a9a674253b861a8fa56bac8e5
1. 明确从两张表的内连接中取数
2. 思考如何计算平均答题数:
- 相关数据:university, device_id, question_id
- 想一下连接后生成的表的形式:university重复最多,其次是device_id,再次是没有重复的question_id
- 以university分组,每个university的question_id的总数量除以其device_id的不重复数量就是最终的平均答题数
3. 最后需要注意以university为基准进行升序排列
SELECT university, COUNT(qpd.question_id) / COUNT(DISTINCT qpd.device_id) AS avg_answer_cnt FROM question_practice_detail AS qpd INNER JOIN user_profile AS up ON qpd.device_id = up.device_id GROUP BY university ORDER BY university ASC