题解 | SQL270题。

考试分数(五)

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

select id,job,score,t_rank from(
    select *,rank() over(partition by job order by score desc) t_rank from grade g
    left join(
        select job,floor((count(*)+1)/2) start, floor((count(*)+2)/2) `end` 
        from grade
        group by job
    ) l using(job)
) c
where t_rank= start or t_rank=`end`
order by id 
-- 先取得中位数位置,之后利用窗口函数给出序号,按照序号是否对应中位数位置进行输出

全部评论

相关推荐

03-21 08:46
已编辑
门头沟学院 C++
一个什么都不会的学生:当你有硕士学历的时候HR会说就是比本科生强
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务