select difficult_level,avg(if(result='right',1,0)) as correct_rate from (select up.device_id,university,answer_cnt,result,difficult_level from user_profile up left join question_practice_detail qpd on up.device_id = qpd.device_id left join question_detail qd on qpd.question_id = qd.question_id where university = '浙江大学') a where result is not null group by difficult_level order by correct_rate;
之前有看过大佬做概率的方法,感觉很好用,这不就学到了。最开始一直错还以为有问题,后面发现是没有去排序,晕死