【发布时间】:2017-06-05 18:46:18
【问题描述】:
我正在尝试将PERCENTILE_DISC 与许多其他内置聚合函数一起使用。我正在尝试的代码是这样的,但它失败了:
SELECT
[DataPoint] AS [DataPoint],
MIN([Value]) AS [Value MIN],
MAX([Value]) AS [Value MAX],
AVG([Value]) AS [Value AVG],
PERCENTILE_DISC(0.5)
WITHIN GROUP
(ORDER BY [Value])
OVER
(PARTITION BY [DataPoint])
AS MedianCont
FROM [Table] AS [Table]
WHERE ([DataPoint]
IN (
...
)
)
GROUP BY [DataPoint]
所以这行得通...
SELECT
Distinct [DataPoint],
PERCENTILE_DISC(0.5)
WITHIN GROUP
(ORDER BY [Value])
OVER
(PARTITION BY [DataPoint])
AS MedianCont
FROM [Table] AS [Table]
WHERE ([DataPoint]
IN (
...
)
)
这行得通...
SELECT
[DataPoint] AS [DataPoint],
MIN([Value]) AS [Value MIN],
MAX([Value]) AS [Value MAX],
AVG([Value]) AS [Value AVG]
FROM [Table] AS [Table]
WHERE ([DataPoint]
IN (
...
)
)
GROUP BY [DataPoint]
但是当我尝试组合它们时,它希望我在 Group By 子句中声明 Value,这是我不想要的,因为我想要一个不同的 DataPoint 列表,而不是每个 @987654328 的值@。
Column 'Value' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
【问题讨论】:
标签: sql-server aggregate-functions