select a.device_id,university,sum(if(b.question_id is not null,1,0)),sum(if(result='right',1,0)) from
( select device_id,university from user_profile where university = '复旦大学' ) as a
left join 
( select device_id,question_id,result,date from question_practice_detail where Month(date)=8 ) as b
on a.device_id = b.device_id 
group by device_id,university;

对于求回答问题数,没有想到更好的解答,有大神能指导的吗