题解 | #考试分数(五)#

考试分数(五)

http://www.nowcoder.com/practice/b626ff9e2ad04789954c2132c74c0512

用前面一道题的中位数序号(t2属于个人爱好,帮我更容易写下面嘿嘿嘿)

with t1 as (
    select job,floor((count(*)+1)/2) as 'start',floor((count(*)+2)/2) as 'end'
    from grade
    group by job
),
t2 as (
    select job,t1.start as t_rank
    from t1
    union 
    select job,t1.end as t_rank
    from t1
    group by job
)
select a.id,t2.job,a.score,t_rank
from (
    select *,row_number() over(partition by job order by score desc) as rk
    from grade
) a
join t2
on a.job = t2.job
where rk = t_rank
order by a.id
全部评论

相关推荐

04-10 08:14
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务