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

最差是第几名(二)

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

select grade
from (
select *,(
select sum(number)
from class_grade
where grade<=c.grade
) t_rank
from class_grade c
inner join (
select sum(number) total
from class_grade
) c2
on 1=1
) t
where (t_rank-number+1<=if(total&1,floor(total/2)+1,floor(total/2)) and t_rank>=if(total&1,floor(total/2)+1,floor(total/2)))
or (t_rank-number+1<=floor(total/2)+1 and t_rank>=floor(total/2)+1)
order by grade;

全部评论

相关推荐

找到实习就改名4月17日下午更改:1600一个月?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务