私は2つの他の組み合わせを使用して集計テーブルを作成しようとしています。最近のレコードと2番目の最近のレコードでテーブルを更新する方法
フィード表A:
PrimaryKey, Score, DateField
1, 50, 1/1/2016
2, 12, 1/1/2016
1, 75, 1/12/2016
1, 80, 1/15/2016
2, 35, 1/16/2016
期待結果(表B):レコード1、80において
PrimaryKey, Score, LastScore, OtherFields...
1, 80, 75, data...
2, 35, 12, data...
は、最新のレコード、75は第2の最新のレコードです。表Bのすべてのレコードについて、これがルールです。
;with cte as
(
select
PrimaryKey,
row_number() over(partition by PrimaryKey order by DateField desc) RowNumber
from
TableA
)
:
条件は日常私は、このようなステートメントを使用してい
表Aによって更新されます25Million表Aのレコード、および表B Bで250Millionレコードの上にありますということです
しかし、私の問題は、1つのマッチで最初の列を設定する方法と2つ目の列を別のものに設定する方法の問題があることです。
これを行うにはもっと簡単な方法がありますか?私は数日ではなく、数時間でこれを実行することを望んでいます。
ありがとうございました。
あなたはCTEで 'WHERE a.seqnumを<= 2 'を追加する必要があり、私はSQL Serverが自動的にそれを行うには十分にスマートであると仮定しないでください。 – dnoeth
Gordonありがとうございます。更新セクションはどのように機能しますか? – arcee123
@dnoeth - あなたはパフォーマンスの権利を意味しましたか? –