0

集計関数の結果を計算に使用する必要があります。MAX関数を使用して、それを別のフィールドに追加する必要があるとします。

私が見つけたそれを行う1つの方法は、派生テーブルを使用することでした。

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 に答える