题解 | #浙大不同难度题目的正确率#

浙大不同难度题目的正确率

https://www.nowcoder.com/practice/d8a4f7b1ded04948b5435a45f03ead8c

SELECT 
    target.difficult_level,
    SUM(CASE WHEN target.result = 'right' THEN 1 ELSE 0 END) / COUNT(target.question_id) AS correct_rate
FROM (
    SELECT 
        qpd.question_id, 
        qpd.result,
        qd.difficult_level
    FROM question_practice_detail AS qpd
    LEFT JOIN user_profile AS up ON qpd.device_id = up.device_id
    LEFT JOIN question_detail AS qd ON qpd.question_id = qd.question_id 
    WHERE up.university = '浙江大学'
) AS target
GROUP BY target.difficult_level
ORDER BY correct_rate;

步骤拆解

① question_practice_detail 和 user_profile的左连接

② 对第①步得到的结果,对question_detail进行左连接

③ 对三张合并后的表,使用WHERE子句进行筛选,得到university = "浙江大学"的结果集,并命名为target

④ 对target按difficult_level进行分组(GROUP BY)

⑤ 在SELECT子句中使用条件子句,将正确的题目(right=1,wrong=0)数量进行累加,除以该难度类别下全部的题目(COUNT) 得到 correct_rate

⑥ 根据correct_rate,进行排序。

全部评论

相关推荐

2025-12-19 21:53
门头沟学院 Java
想做OpenGL:不要一来就把自己定位这么低吧,把大厂当成目标,不断去学技术做项目,最后你至少能学到能找到中小厂的技术水平,你一上来就找这种两千块还要前后端都会的,其实对你用处不会很大,真去了也是打杂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务