【发布时间】:2011-09-05 15:57:32
【问题描述】:
对于偶数行,对于下表,中位数公式为 (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 中有效,但在 SQL Server 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
【问题讨论】:
标签: sql tsql sql-server-2000