在计算中使用聚合函数的结果

时间:2013-03-26 14:31:28

标签: sql sql-server

我需要在计算中使用聚合函数的结果。假设我需要使用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。

2 个答案:

答案 0 :(得分:2)

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

SELECT MAX(Col1) OVER(PARTITION BY ID) MaxValue, 
       Col2 + MAX(Col1) OVER(PARTITION BY ID)
FROM TableA

答案 1 :(得分:0)

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

select TableA.Col2 + (select max(col1) from tablea t2 where t2.id = tablea.id group by t2.id)
    from TableA