题解 | #考试分数(五)#
考试分数(五)
http://www.nowcoder.com/practice/b626ff9e2ad04789954c2132c74c0512
SELECT
a.id,
a.job,
a.score,
a.t_rank
from
(
SELECT
*,
row_number() over(partition by job order by score desc) t_rank,
count(id) over(partition by job) num #对工作总数计数
from grade
)a
where abs(a.t_rank-(a.num+1)/2)<1 #当工作总数为4中心数为2和3,工作总数为5中心数为3 发现规律(4+1)/2=2.5,(5+1)/2=3,作为中心数的2,3减去对应2.5的绝对值<1 作为中心数的3减去对应3的绝对值也是<1 故可作为删选t_rank是否为中心数的行
order by a.id