平均值vs中位数是多少?

时间:2017-05-04 14:54:00

标签: sql sql-server select calc

我有一些select语句可以计算总和,除法和平均值等字段。但是我现在需要根据查询包含中值,以及平均值(平均值)。该表在MSSQL数据库中包含50,000行,因此在同一查询返回中,我需要为每行返回结果。

我知道SQl中没有中位数公式,而不是我所知道的。我正在使用SQL 2012.所以,如果有人有想法,我会欢迎你的想法,因为我不能成为唯一反对这一点的人。

示例就是这样的

Select 
     Round (AVG ([LENGTH]),2) as Length_X,
     Round (Median ([LENGTH]),2) as Length_median,

我理解Median不是一个可接受的sql语句,所以只是为了演示目的来理解我的观点

干杯

1 个答案:

答案 0 :(得分:1)

如果您有数字数据,则有“中位数”功能。 It is just spelled differently

select percentile_cont(0.5) within group (order by ??) over ()

select percentile_disc(0.5) within group (order by ??) over ()

(两者之间的差异很微妙,对于大多数目的而言可能无关紧要。)

遗憾的是,它不是聚合函数,因此通常在子查询中使用。