```WITH t AS (
	SELECT
		b.*,
		a.result,
		a.date,
		
	CASE
			
			WHEN result = "right" THEN
			1 ELSE 0 
		END flag 
FROM
	user_profile b
	LEFT JOIN question_practice_detail a ON b.device_id = a.device_id 
WHERE
	university = "复旦大学" 
	) SELECT
	device_id,
	university,
	count( result ) question_cnt,
	sum( flag ) right_question_cnt 
FROM
	t 
WHERE
	date IS NULL 
	OR DATE_FORMAT( date, "%Y-%m" ) = "2021-08" 
GROUP BY
	device_id,
	university
解题思路:
	左连接2表保留用户完整信息,增加一列用0、1标记用户答题正确或者错误,然后对连表用条件复旦大学过滤形成一张仅含有复旦大学答题的临时表。  从临时表中以用户设备device_id和大学分组统计以条件为8月或者8月没答题的用户;查询的结果用sum(flag)、count(result)即为用户答题正确数和总共答题数。