select device_id,university,question_cnt,right_question_cnt
from(
 select up.device_id,university,count(question_id) over    (partition by device_id) as question_cnt,
 count(if(result='right',1,null)) over(partition by device_id)  as right_question_cnt,
 row_number() over (partition by device_id) as rn
 from user_profile up
 left join question_practice_detail qpd on qpd.device_id=up.  device_id
where university='复旦大学' and (month(date)=8 or date is null)
) as fudan
where rn=1