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