题解 | #统计每个用户的平均刷题数#
统计每个用户的平均刷题数
https://www.nowcoder.com/practice/f4714f7529404679b7f8909c96299ac4
SELECT up.university, qd.difficult_level, count(qpd.device_id) / count(distinct qpd.device_id) as avg_answer_cnt FROM question_practice_detail qpd JOIN user_profile up ON qpd.device_id = up.device_id JOIN question_detail qd ON qpd.question_id = qd.question_id GROUP BY up.university, qd.difficult_level HAVING up.university = '山东大学'
题目:参加了答题的山东大学的用户在不同难度下的平均答题题目数
思路:
- 涉及哪些表?用户、答题信息、题目信息
- 用join。。on。。join。。on把各表关联起来,注意题目要求“参加了答题”的
- “不同难度下”,用到分组group by
- 分组计算“平均答题题目数”,总答题数目 / 答题人数
- 只看“山东大学”,用到分组过滤,在group by 之后用having
- 注意分组过滤中的字段university,也要写在group by里面