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

最差是第几名(二)

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

匹配区间的思路
计算每个grade的下的数量范围的闭区间和中位数的位置,匹配后可查询出结果

select grade
from  (select grade, (sum(number) over(order by grade) - number + 1) as start_num, 
    sum(number) over(order by grade) as end_num,
    (select floor(( SUM(number) + 1 )/ 2 ) from class_grade) AS start_t, 
    (select floor(( SUM(number) + 2 )/ 2 ) from class_grade) AS end_t 
from class_grade) t1
where (start_t >= start_num and start_t <= end_num) or 
    (end_t >= start_num and end_t <= end_num) 

全部评论

相关推荐

每晚夜里独自颤抖:这个在牛客不是老熟人了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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