我正在嘗試在ssrs 2012中創建一個顯示中值成本的列。我是否正確計算我的數據集的中位數?
我一直在搜索這一段時間,並且寫了PERCENTILE_CONT查詢來嘗試實現這一點。
這是查詢我使用:
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),則中位數列中沒有變化 - 這導致我認爲這是中位數的錯誤值:(
與順序重新ORDER BY SUM(sr.price)的sr.price吧? – Arvo 2014-10-30 13:13:18
我試過了,當我這樣做,它給了我「sr.price不包含在一個聚合函數或GROUP BY子句」 – QuestionQuestion 2014-10-30 13:15:30