WITH tmp_user_level AS (
	SELECT
		ui.level,
	CASE	
			WHEN er.score >= 90 THEN
			'优' 
			WHEN er.score >= 75 THEN
			'良' 
			WHEN er.score >= 60 THEN
			'中' ELSE '差' 
		END AS score_grade 
	FROM
		exam_record er
		LEFT JOIN user_info ui ON er.uid = ui.uid 
	WHERE
		er.score IS NOT NULL 
	) 
	
 
	
SELECT
	tul.level level,
	tul.score_grade score_grade,
	ROUND(count(*) / tt.ccc ,3) ratio
FROM
	tmp_user_level tul
LEFT JOIN (SELECT count(1) ccc ,level FROM tmp_user_level GROUP BY level)  tt on tt.level = tul.level
GROUP BY tul.level, tul.score_grade,tt.ccc
ORDER BY tul.level DESC,ratio DESC