0
我在我的表中的以下數據:平均數及中位數在SQL Server一個查詢2012
SELECT category, value FROM test
| category | value | +----------+-------+ | 1 | 1 | | 1 | 3 | | 1 | 4 | | 1 | 8 |
現在我使用兩個單獨的查詢。
爲了得到平均:
SELECT category, avg(value) as Average FROM test GROUP BY category
| category | value | +----------+-------+ | 1 | 4 |
要獲得中位數:
SELECT DISTINCT category, PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY value) OVER (partition BY category) AS Median FROM test
| category | value | +----------+-------+ | 1 | 3.5 |
有什麼辦法可以將它們合併到一個查詢中嗎?
注意:我知道我也可以通過兩個子查詢獲得中值,但我更喜歡使用PERCENTILE_CONT函數來獲取它。
還是要GROUP BY類別在年底的AVG功能。 – 2014-10-18 23:18:26
以前的答案看起來更復雜......這種方法是否有更好的性能? – 2014-10-18 23:19:34
它也會返回錯誤的答案(對於上面的數據集而不是3.5) – 2014-10-18 23:19:58