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

考试分数(五)

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

select
    b.id,b.job,b.score,b.r_n
FROM 
#先找出中位数的序号,使用75题方法
    (SELECT
        id,
        job,
        floor((count(*)+1)/2) 'start',
        floor((count(*)+2)/2) 'end'
    FROM
        grade
    group by job
    order by job
    ) a
join
#使用开窗函数给每个排排序
    (SELECT
        *,ROW_NUMBER() over(partition by job order by score desc) r_n
    FROM
        grade
    ) b on a.job=b.job
where
    b.r_n = a.start or b.r_n=a.end
group by b.id
order by b.id
全部评论

相关推荐

头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
哥_留个offer先:跟他说,你这个最好用c#,微软就用c#Java不适合这个项目
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务