题解 | #考试分数(五)#
考试分数(五)
https://www.nowcoder.com/practice/b626ff9e2ad04789954c2132c74c0513
select id,job,score,t_rank from ( select id,job,score, count(*)over(partition by job) total, -- 统计每个job条数 dense_rank()over(partition by job order by score desc) t_rank -- job分区,分数降序排名 from grade )t where total%2<>0 and t_rank=round(total/2) or -- job条数为奇数的情况 total%2=0 and t_rank=round(total/2) or -- job条数为偶数,共2条记录,这是第1条 total%2=0 and t_rank=round(total/2)+1 -- job条数为偶数,共2条记录,这是第2条 order by id;