/*
  查询目标:统计浙江大学用户在不同难度题目下的答题正确率,并按正确率升序输出结果。
*/

-- 主查询开始,选择难度级别和计算的正确率
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;

-- 查询结束