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

考试分数(五)

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-13 15:16
三江学院 运营
据说名字越长别人越关注你的昵称我觉得我要被关注了:完全看不出你到底干了什么 全是车轱辘话
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务