题解 | 各用户等级的不同得分表现占比
各用户等级的不同得分表现占比
https://www.nowcoder.com/practice/ebff819fd38c46db8a42dfe43ca7b33a
SELECT
l,
score_grade,
ROUND(count(1) / max(sum_),3) as ratio
FROM
(
SELECT
er.uid,
er.score,
er.exam_id,
ui.`level` as l,
count(1) over(PARTITION by `level`) as sum_,
CASE
WHEN er.score >=90 THEN '优'
WHEN er.score >= 75 THEN'良'
WHEN er.score >= 60 THEN'中'
WHEN er.score < 60 THEN '差'
END AS score_grade
FROM
exam_record er
INNER JOIN user_info ui
on ui.uid = er.uid
WHERE
er.score IS NOT NULL
)t
GROUP BY l,score_grade
ORDER BY l desc,ratio desc
查看9道真题和解析