# 一步到位
SELECT
    level,
    CASE
        WHEN score >= 90 THEN '优'
        WHEN score >= 75 THEN '良'
        WHEN score >= 60 THEN '中'
        ELSE '差'
    END score_grade,
    ROUND(COUNT(*)/SUM(COUNT(*)) OVER(PARTITION BY level),3) ratio
FROM
    user_info ui
INNER JOIN
    exam_record er
    ON ui.uid = er.uid AND score IS NOT NULL
GROUP BY
    level,score_grade
ORDER BY
    level DESC, ratio DESC