(sum(case when qpd.result = 'right' then 1 else 0 end) / count(qpd.result)) as correct_rated

select 
qd.difficult_level, 
(sum(case when qpd.result = 'right' then 1 else 0 end) / count(qpd.result)) as correct_rated
from user_profile up,
     question_detail qd,
     question_practice_detail qpd
where up.university = '浙江大学'
    and up.device_id = qpd.device_id
    and qpd.question_id = qd.question_id
group by qd.difficult_level
order by correct_rated asc