with zd as ( select distinct(device_id) device_id from user_profile where university = '浙江大学' ), qu_detail as ( select question_practice_detail.device_id de_id, question_practice_detail.question_id que_id, question_practice_detail.result result, question_detail.difficult_level difficult_level from zd join question_practice_detail on zd.device_id=question_practice_detail.device_id left join question_detail on question_practice_detail.question_id = question_detail.question_id ) select difficult_level, sum(if(qu_detail.result='right',1,0))/count(*) correct_rate from qu_detail group by difficult_level order by correct_rate