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

考试分数(五)

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

select 
    id,
    job,
    score,
    t_rank
from (select *,row_number()over(partition by job order by score desc) t_rank from grade) s
where (job, t_rank) in (select
            job,
            case when count(*)%2 = 1 then ceil(count(*)/2)
            else round(count(*)/2)
            end start
        from 
            grade
        group by job)
or (job, t_rank) in (select
    job,
    case when count(*)%2 = 0 then round(count(*)/2+1)
    end as "end"
from 
    grade
group by job)
order by id

注意:select中定义的别名不能在where中被使用

全部评论

相关推荐

Java面试先知:我也是和你一样的情况,hr 说等开奖就行了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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