题解 | #最差是第几名(二)#
最差是第几名(二)
https://www.nowcoder.com/practice/165d88474d434597bcd2af8bf72b24f1
select
grade
from(
select
grade,
lag(sum,1,0) over(order by grade) as lag_sum,
sum,
n1,
n2
from(
select grade,
sum(number)over(order by grade) sum,
floor(((select sum(number) from class_grade)+1)/2) as n1,
ceil(((select sum(number) from class_grade)+1)/2) as n2
from class_grade
)a
)b
where (n1>lag_sum and n1<=sum) or (n2>lag_sum and n2<=sum)
order by grade
最直观的方法去看中位数落在哪个区间。
