题解 | #浙大不同难度题目的正确率#
浙大不同难度题目的正确率
https://www.nowcoder.com/practice/d8a4f7b1ded04948b5435a45f03ead8c
##本题需要注意以下几点 1.筛选条件,浙江大学,很多题解单独用了where语句,筛选,其实在连接前两个表时直接在on后筛选即可 2.浙江大学的用户做题的正确率,隐含了条件一定是做过题的,所以使用inner join内连接 3.不同难度正确率的计算,明显要按题目难度分组。正确率=做对的题目数量/做题总数量。前者用count/sum(if(qpd.result='right',1,0)),后者 用count(qpd.question_id)都行,case多条件语句也可以,因为是内连接 不会出现左边id匹配后做题结果为空的情况 select qd.difficult_level, sum( case when qpd.result='right' then 1 else 0 end) / count(qpd.question_id) correct_rate from user_profile up inner join question_practice_detail qpd on up.device_id=qpd.device_id and up.university='浙江大学' inner join question_detail qd on qpd.question_id=qd.question_id group by qd.difficult_level order by correct_rate;