题解 | #统计每个学校各难度的用户平均刷题数#
统计每个学校各难度的用户平均刷题数
https://www.nowcoder.com/practice/5400df085a034f88b2e17941ab338ee8
解题思路,三个表需要链接,分别观察三个表的共同值,找到链接基础,用user_profile 表和question_practice_detail 连接 on decice_id,question_practice_detail 和question_detail 都含有共同的question_id 所以这两个表join on question_id. 这样三个表就都串联起来了。形成一个新表,然后select 学校名称, difficult_id ,以及之前算过的求平均答题数(用总的答题id/答题设备数(去重的)) 因为包含聚合函数,所以要加上group by
完整代码如下:
select
university,
qd.difficult_level as difficult_level,
count(q.question_id) / count(distinct u.device_id) as avg_answer_cnt
from
user_profile as u
join question_practice_detail as q on u.device_id = q.device_id
join question_detail as qd on q.question_id = qd.question_id
group by
university,
difficult_level