SQL Server 下取中位数(中位值)的方法

上一篇 / 下一篇  2012-10-08 10:08:56 / 个人分类:数据库

51Testing软件测试网y+i/w g3d_-oYp.`

  中位数是指将数据按大小顺序排列起来,形成一个数列,居于数列中间位置的那个数据。中位数用Me表示。

x4ND~;^9^051Testing软件测试网2}5Xm4wT0WoG

  从中位数的定义可知,所研究的数据中有一半小于中位数,一半大于中位数。中位数的作用与算术平均数相近,也是作为所研究数据的代表值。在一个等差数列或一个正态分布数列中,中位数就等于算术平均数。51Testing软件测试网nX]+D~

51Testing软件测试网 `&l.R\|V

  在数列中出现了极端变量值的情况下,用中位数作为代表值要比用算术平均数更好,因为中位数不受极端变量值的影响;如果研究目的就是为了反映中间水平,当然也应该用中位数。在统计数据的处理和分析时,可结合使用中位数。51Testing软件测试网4A*^#PErRe+F.O

+bA"_DZ*W0  将数据排序后,位置在最中间的数值。即将数据分成两部分,一部分大于该数值,一部分小于该数值。中位数的位置:当样本数为奇数时,中位数=(N+1)/2;当样本数为偶数时,中位数为N/2与1+N/2的均值 ,或求出中间两个数的平均数作为中位数。51Testing软件测试网/SW'I/_sS$N{1J

51Testing软件测试网;I.@Lu!W

  在Excel中有函数MEDIAN来取中位数,但是在SQLServer中则没有该内置的函数,需要用以下方法求得。

Njm QN051Testing软件测试网,{`|Z ^3`

create table #tb(pid varchar(10),coadcladcon int)
dZfS.{-{9np(v0insert into #tb
"dH [.ZD0 select 'PRAA0370',1 union all51Testing软件测试网A|:iB*}ac)}
 select 'PRAA0370',2 union all51Testing软件测试网7g!^Ki c IC
 select 'PRAA0370',3 union all51Testing软件测试网+y jOBRls
 select 'PRAA0370',4 union all51Testing软件测试网6R(YsJ h&Wwjq
 select 'PRAA0370',5 union all
+iE sW(_?'@0 select 'PRAA0370',6 union all
A wMAa)z U0 select 'PRAA0371',1 union all51Testing软件测试网 Z m/F(v5} y
 select 'PRAA0371',2 union all51Testing软件测试网zqGXo`5]s
 select 'PRAA0371',3 union all
n-Nrh4@"H&Bs0 select 'PRAA0371',4 union all51Testing软件测试网*e!s&wF\?2~
 select 'PRAA0371',5 union all51Testing软件测试网L&TjdR['T
 select 'PRAA0371',6 union all
_X\7x.Cxx0 select 'PRAA0371',7
51Testing软件测试网2O${#H[&n_

51Testing软件测试网#} A1X3l3w F(C Q

WITH OrdersRN AS
p ]a"E:]u/\0(51Testing软件测试网 _)ir4}*k
  SELECT pid, coadcladcon,51Testing软件测试网cF,QGf1vLi\fm@
    ROW_NUMBER() OVER(PARTITION BY pid ORDER BY coadcladcon) AS RowNum,
,JZ"]o @+O'_W0    COUNT(*) OVER(PARTITION BY pid) AS Cnt
&mdeQ ~$U/x0  FROM #tb
3JP6wnl)w2F[0)
&`WK;^ Mj!@7C#]"dl$_0select pid,avg(coadcladcon) coadcladcon from (
S?v1F Fh0SELECT pid,coadcladcon,RowNum,Cnt51Testing软件测试网0b h| ?)O$E9jPA
FROM OrdersRN o
W]'J#w_s t \T0WHERE RowNum IN((Cnt + 1) / 2,(Cnt + 2) / 2)51Testing软件测试网a efT*i!X
)a
vsr2E)W$xoB0group by pid

j"L:y4P[So)Al0

TAG:

 

评分:0

我来说两句

Open Toolbar