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