select
difficult_level,
sum(
case
when result = 'right' then 1
else 0
end
) / count(result) correct_rate
from
question_practice_detail qpd
left join user_profile u on qpd.device_id = u.device_id
left join question_detail qd on qpd.question_id = qd.question_id
where
university = '浙江大学'
group by
difficult_level
order by
correct_rate
通过 LEFT JOIN
连接三张表:question_practice_detail
(练习详情表)、user_profile
(用户信息表)和 question_detail
(题目详情表)。使用 WHERE
子句筛选出 university
为 ' 浙江大学 ' 的记录。按 difficult_level
进行分组。在每个分组内,使用 CASE WHEN
语句统计回答正确的题目数量,然后除以总答题数量,得到正确率。最后按正确率对结果进行排序。