with t as (
    select a.device_id,university,question_id,date,result from user_profile a
    join question_practice_detail b on a.device_id = b.device_id
)


select device_id,university,question_cnt,right_question_cnt
from 
(
    select device_id,university,
           count(*) as question_cnt,
           sum(if(result="right",1,0)) as right_question_cnt
    from t
    where month(date) = 8 and university = "复旦大学"
    group by device_id
) c
union 
select device_id,university,0 as question_cnt,0 as right_question_cnt
from t
where month(date) <> 8 and university = "复旦大学"
group by device_id,university