题目要求:计算不同学校、不同难度的用户平均答题量,根据示例,你的查询应返回以下结果(结果在小数点位数保留4位,4位之后四舍五入)
解题思路:
1)理解三个表
question_practice_detail  回答题目的表,包含所有回答题目的用户id,题目号,是否回答正确
question_detail 题目表,包含题目号,题目难度
user_profile 用户基础表,包含用户id,用户所属学校等基础信息
2)理解题目要求
计算不同学校、不同难度:这表示要求分组,按照学校、题目难度分组计算
用户平均答题量:这在上一题中出现过,=答过题目的人数/不重复(distinct)的答题人数
3)sql,首先先连接表,以question_practice_detail为主表,因为这里包含所有回答问题的用户,
连接  question_detail 题目表,需要题目难度做分组条件 ,连接条件:题目号
在连接 user_profile 用户基础表,需要学校做分组条件,连接条件:用户id
然后再思考查询出什么:
需要学校字段、题目难度字段、计算字段回答问题的用户数/不重复的用户人数,用round函数保留4为小数
4)写出sql
select
    up.university,
    qd.difficult_level,
    round(count(qpd.question_id) / count(distinct qpd.device_id), 4) as avg_answer_cnt
from
    question_practice_detail as qpd
    join question_detail as qd on qpd.question_id = qd.question_id
    join user_profile as up on up.device_id = qpd.device_id
group by
    up.university,
    qd.difficult_level
order by
    up.university,
    qd.difficult_level;