SQL 88) 最差是第几名(二)

最差是第几名(二)

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

参考大牛的解法,绝了

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

select grade
from
    (select grade,
    (select sum(number) from class_grade) as total,
    sum(number)over(order by grade) a, -- 求正序
    sum(number)over(order by grade desc) b  -- 求逆序
     from class_grade
    order by grade)t
where a >= total/2 and b >= total/2  -- 正序逆序均大于整个数列数字个数的一半
order by grade;
SQL 文章被收录于专栏

SQL

全部评论
如果总个数是偶数个的话,有两个中位数,且两个中位数的等级是一样的,按题目的意思不应该是输出两个麽,这个代码只会输出一个
2 回复 分享
发布于 2021-10-22 20:09
select grade from (select grade,(select sum(number) from class_grade) as total, sum(number) over(order by grade) a, sum(number) over(order by grade desc) b from class_grade) t1 where a >= (total+1)/2 and b >=(total+1)/2 order by grade;中位数位置的公式应该是(total+1)/2
1 回复 分享
发布于 2021-11-04 16:37
真的绝了,请收下我的膝盖
1 回复 分享
发布于 2021-07-12 09:51
求问,为什么(select sum(number) from class_grade) as total不能直接写sum(number) as total 呢?
点赞 回复 分享
发布于 2023-05-22 11:32 北京

相关推荐

05-07 17:58
门头沟学院 Java
wuwuwuoow:1.简历字体有些怪怪的,用啥写的? 2.Redis 一主二从为什么能解决双写一致性? 3.乐观锁指的是 SQL 层面的库存判断?比如 stock > 0。个人认为这种不算乐观锁,更像是乐观锁的思想,写 SQL 避免不了悲观锁的 4.奖项证书如果不是 ACM,说实话没什么必要写 5.逻辑过期时间为什么能解决缓存击穿问题?逻辑过期指的是什么 其实也没什么多大要改的。海投吧
点赞 评论 收藏
分享
04-30 21:35
已编辑
长安大学 C++
晓沐咕咕咕:评论区没被女朋友好好对待过的计小将可真多。觉得可惜可以理解,毕竟一线大厂sp。但是骂楼主糊涂的大可不必,说什么会被社会毒打更是丢人。女朋友体制内生活有保障,读研女朋友还供着,都准备订婚了人家两情相悦,二线本地以后两口子日子美滋滋,哪轮到你一个一线城市房子都买不起的996清高计小将在这说人家傻😅
点赞 评论 收藏
分享
评论
61
10
分享

创作者周榜

更多
牛客网
牛客企业服务