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

考试分数(五)

https://www.nowcoder.com/practice/b626ff9e2ad04789954c2132c74c0513

WITH T AS
(
    select job
            , sum(1) max_1
    from grade
    group by job
    order by job
)
SELECT 
    G.id
    ,G.job
    ,G.score
    ,G.t_rank 
FROM (SELECT 
    *
    ,ROW_NUMBER() OVER (PARTITION BY job ORDER BY score DESC) t_rank 
FROM grade) G
LEFT JOIN T ON G.job = T.job
WHERE G.t_rank IN (floor((T.max_1+1)/2),floor((T.max_1+2)/2))
ORDER BY G.id
;

# WITH T AS
# (
#     select job
#             ,floor((sum(1)+1)/2) as start
#             ,floor((sum(1)+2)/2) as end
#             , sum(1) max_1
#     from grade
#     group by job
#     order by job
# )
# SELECT *
# FROM T
# ;

全部评论

相关推荐

02-07 10:52
复旦大学 Java
混子不想混:非常能理解,感觉他们就靠着入行早,打压新人一样。我这个公司也是,天天干的累死累活,然后绩效打C,合着让新人被绩效,像是年底攒棺材本一样。总是打击之后,还会让人开始自我怀疑,是不是我努力的还不够,实际上并不是,就是他们不做人,故意打压新人。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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