我有一些select语句可以计算总和,除法和平均值等字段。但是我现在需要根据查询包含中值,以及平均值(平均值)。该表在MSSQL数据库中包含50,000行,因此在同一查询返回中,我需要为每行返回结果。
我知道SQl中没有中位数公式,而不是我所知道的。我正在使用SQL 2012.所以,如果有人有想法,我会欢迎你的想法,因为我不能成为唯一反对这一点的人。
示例就是这样的
Select
Round (AVG ([LENGTH]),2) as Length_X,
Round (Median ([LENGTH]),2) as Length_median,
我理解Median不是一个可接受的sql语句,所以只是为了演示目的来理解我的观点
干杯
答案 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 ()
(两者之间的差异很微妙,对于大多数目的而言可能无关紧要。)
遗憾的是,它不是聚合函数,因此通常在子查询中使用。