首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否正确计算数据集的中位数?

是否正确计算数据集的中位数?
EN

Stack Overflow用户
提问于 2014-10-30 13:08:59
回答 1查看 338关注 0票数 0

我正试图在ssrs 2012中创建一个列,以显示中位成本。

我已经搜索了很长一段时间,并编写了一个PERCENTILE_CONT查询来尝试实现这一点。

这是我使用的查询:

代码语言:javascript
复制
SELECT srt.Name,
    cast(sum(sr.price) as int) as AvgCost,
    cast(sum(sr.cost) as int) as AvgTransCost,
    cast(avg(sr.TotalTimeSpent) as int) as TotalTimeSpent,
    percentile_cont(.5) WITHIN GROUP(ORDER BY sum(sr.price)) OVER(PARTITION BY srt.Name) AS MedianSpend
from 
    ServiceReq sr, ServiceReqTemplate srt

当我运行报告时,结果如下:

这是中位数吗?为什么其他所有的成本和中介都是一样的呢?如果我将PERCENTILE_CONT(.5)更改为PERCENTILE_CONT(.9),则中间列没有变化--这使我相信这是中位数的错误值:(

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-30 13:14:17

您使用的是PERCENTILE_CONT (CONT =连续的)

根据Server中列值的连续分布计算百分位数。结果是内插的,可能不等于列中的任何特定值。

(http://msdn.microsoft.com/en-us/library/hh231473.aspx)

而你想要的是PERCENTILE_DISC (磁盘=离散)

对于给定的百分位值P,PERCENTILE_DISC按ORDER子句对表达式的值进行排序,并以大于或等于P的最小CUME_DIST值(相对于相同的排序规范)返回值--例如,PERCENTILE_DISC (0.5)将计算表达式的第50百分位数(即中位数)。

(http://msdn.microsoft.com/en-us/library/hh231327.aspx)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26653858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档