Для четных строк формула для медианы равна (104,5 + 108) / 2 для таблицы ниже, а для нечетных строк - 108 для таблицы ниже
Total Total
100 100
101 101
104.5 104.5
108 108
108.3 108.3
112 112
114
Код ниже работает в SQL Server 2008, но не в SQLServer 2000 как он не понимает row_number()
и over
.
Как мы можем изменить нижний код, чтобы он работал на SQL Server 2000?
select avg(Total) median from
(select Total,
rnasc = row_number() over(order by Total),
rndesc = row_number() over(order by Total desc)
from [Table]
) b
where rnasc between rndesc - 1 and rndesc + 1