select d.difficult_level,sum(if(pd.`result`='right',1,0))/count(1) correct_rate from (select device_id from user_profile where university = '浙江大学') u 
inner join question_practice_detail pd on u.device_id = pd.device_id 
inner join question_detail d on pd.question_id = d.question_id group by d.difficult_level order by correct_rate;

看了下其他人写的题解,好像都没有我这个好,要先把浙江大学过滤出来,然后再做关联,不然关联做了很多无用功。