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

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

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

SELECT
    q2.difficult_level,
    sum(if (q1.result = 'right', 1, 0)) / count(q1.question_id) as correct_rate
FROM
    user_profile u
    right join question_practice_detail q1 on u.device_id = q1.device_id
    left join question_detail q2 on q1.question_id = q2.question_id
WHERE
    university = '浙江大学'
GROUP BY
    q2.difficult_level
ORDER BY
    correct_rate;

思路:

1,浙大,这是条件,用where控制

WHERE
    university = '浙江大学'

2,不同难度,这是分组,用group by

GROUP BY
    q2.difficult_level

3,查表,关联三张表(其实往往从这一步开始写),用from和join连接

FROM
    user_profile u
    right join question_practice_detail q1 on u.device_id = q1.device_id
    left join question_detail q2 on q1.question_id = q2.question_id

4,输出需要的列,用select

5,计算正确率=总的right/总的question_id

SELECT
    q2.difficult_level,
    sum(if (q1.result = 'right', 1, 0)) / count(q1.question_id) as correct_rate

6,排序,用order by

ORDER BY
    correct_rate;

#MySQL##拆解题目#
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务