题解 | #统计每个用户的平均刷题数#
统计每个用户的平均刷题数
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里面
字节跳动工作强度 1112人发布