题解 | 统计每个学校各难度的用户平均刷题数
统计每个学校各难度的用户平均刷题数
https://www.nowcoder.com/practice/5400df085a034f88b2e17941ab338ee8
select u.university, qd.difficult_level, round(count(qpd.id)/count(distinct u.device_id),4) as avg_answer_cnt from user_profile as u join question_practice_detail as qpd on u.device_id=qpd.device_id join question_detail as qd on qpd.question_id=qd.question_id group by u.university,qd.difficult_level order by u.university,qd.difficult_level;
【好难啊啊啊啊啊啊啊——————】
解题步骤:
- 连接表:我们需要将 user_profile 表与 question_practice_detail 表通过 device_id 进行连接,然后再与 question_detail 表通过 question_id 进行连接,以获取每个用户的答题难度信息。
- 分组计算:根据 university 和 difficult_level 进行分组,计算每个组的平均答题量。
- 计算平均值:对于每个分组,计算该组内用户的答题总数,并除以用户数量,得到平均答题量。
- 格式化输出:将结果保留四位小数。