题解 | 88#最差是第几名(二)#

最差是第几名(二)

http://www.nowcoder.com/practice/165d88474d434597bcd2af8bf72b24f1

select grade
from 
(
    select
    grade
    ,(select sum(number) from class_grade) total
    ,sum(number) over(order by grade desc) rank1
    ,sum(number) over(order by grade) rank2
    from class_grade
) t
where rank1>=total/2 and rank2>=total/2
order by grade

思路:这里求中位数,利用了中位数是一定大于等于总数一半的。所以我们这里正序逆序对总number建立子查询,然后利用条件求出来。

sql题 文章被收录于专栏

牛客网里面的sql题,把答案和思路写下来

全部评论

相关推荐

09-21 21:14
门头沟学院
否极泰来来来来:和他说:这里不好骂你,我们加个微信聊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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