0

我需要在计算中使用聚合函数的结果。假设我需要使用 MAX 函数并将其添加到另一个字段。

我发现的一种方法是使用派生表:

SELECT DerivedTable.MaxValue, TableA.Col2 + DerivedTable.MaxValue FROM (
SELECT ID, MAX(Col1) AS MaxValue FROM TableA
) As DerivedTable 
INNER JOIN TableA ON DerivedTable.ID=TableA.ID

有没有办法在单个 Select 语句中做到这一点?

TIA。

4

2 回答 2

2

在 SQL Server 2005+ 中,您可以使用OVER()

SELECT MAX(Col1) OVER(PARTITION BY ID) MaxValue, 
       Col2 + MAX(Col1) OVER(PARTITION BY ID)
FROM TableA
于 2013-03-26T14:36:25.820 回答
0

这使用子选择而不是直接派生表。

select TableA.Col2 + (select max(col1) from tablea t2 where t2.id = tablea.id group by t2.id)
    from TableA
于 2013-03-26T14:37:14.607 回答