题解 | #考试分数(五)#
考试分数(五)
https://www.nowcoder.com/practice/b626ff9e2ad04789954c2132c74c0512
with t_rank as ( select *, count(score) over(partition by job) as cnt, row_number() over(partition by job order by score,id) as a, row_number() over(partition by job order by score desc,id desc) as b from grade ) select id,job,score,b from t_rank where a >= cnt / 2 and b >= cnt / 2 order by id
中位数就是正序逆序排列都位于中间的数,两次排序后去找中间的位置