/*
查询目标:统计浙江大学用户在不同难度题目下的答题正确率,并按正确率升序输出结果。
*/
-- 主查询开始,选择难度级别和计算的正确率
SELECT
-- 难度级别
qd.difficult_level,
-- 计算正确率:正确回答的数量除以总回答的数量
SUM(CASE WHEN qpd.result = 'right' THEN 1 ELSE 0 END) / COUNT(qpd.question_id) AS correct_rate
FROM
-- 问题练习详情表
question_practice_detail qpd
-- 内连接用户信息表,以获取用户所在大学信息
INNER JOIN user_profile up ON qpd.device_id = up.device_id
-- 内连接问题详情表,以获取问题难度
INNER JOIN question_detail qd ON qpd.question_id = qd.question_id
WHERE
-- 限定条件:只考虑浙江大学的用户
up.university = '浙江大学'
-- 按难度级别分组,以便独立计算每个难度的正确率
GROUP BY
qd.difficult_level
-- 结果按正确率升序排列
ORDER BY
correct_rate ASC;
-- 查询结束