with t1 as ( select a.device_id, university, question_id, result from user_profile a left join question_practice_detail b on a.device_id = b.device_id where university = "复旦大学" and month(date) = 8 ) select distinct device_id, university, count(1) over() question_cnt, sum(if(result = "right",1,0)) over() right_question_cnt from t1
先筛选出来合适的然后去重,直接开窗计算结果了