题目要求:计算不同学校、不同难度的用户平均答题量,根据示例,你的查询应返回以下结果(结果在小数点位数保留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;