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

最差是第几名(二)

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

当某一数的正序和逆序累计均大于整个序列的数字个数的一半即为中位数

例如 A A A B B C C D D F 1 2 3 4 5 6 7 8 9 10 正序 10 9 8 7 6 5 4 3 2 1 逆序 上面的5 6 和6 5 就是中位数,即B C 如果是奇数的话那么就是一个

select grade
from
(select grade,
    (select sum(number) from class_grade) as total, --求出总的个数
     sum(number) over(order by grade) as a, --求出正序
     sum(number) over(order by grade desc) as b --求出逆序
 from class_grade)as t
 where a >= total/2 and b >=total/2 --判定条件
 order by grade;
全部评论

相关推荐

04-17 18:32
门头沟学院 Java
野猪不是猪🐗:他跟你一个学校,你要是进来之后待遇比他好,他受得了?
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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