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

考试分数(五)

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

WITH grade_count AS (
    SELECT job, COUNT(job) AS job_cnt
    FROM grade
    GROUP BY job
),
grade_rank AS (
    SELECT id, job, score, DENSE_RANK() OVER (
    PARTITION BY job
    ORDER BY score DESC) AS d_rank
    FROM grade
    ORDER BY id ASC
)

SELECT r.id, r.job, r.score, r.d_rank
FROM grade_rank AS r
LEFT JOIN grade_count AS c
ON r.job = c.job
WHERE r.d_rank = (c.job_cnt + 1)/2
OR r.d_rank = c.job_cnt/2
OR r.d_rank = c.job_cnt/2 + 1
ORDER BY id ASC;

全部评论

相关推荐

生命诚可贵:先不说内容怎么样 排版就已经太差劲了 第一眼看不到重点,第二眼已经没有再看的耐心了, 篇幅占的太满了 字体不要用灰色 观感不好 想重点突出的黑色加粗就可以了 多列要点 少些大段的句子 项目经历把项目用的技术要点列出来,光写个python plc什么的太宽泛了 自我评价也有点偏多
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务