SQL Serverは、計算方法の合計額を詳細に蓄積します
条項の実装に関するいくつかのユースケースを処理する柔軟性がありません。 OVER
OVER
スキルを更新
元のテーブルのデータを一時テーブルに挿入し、蓄積された合計列をnullに設定します。
更新スキルは、SQL Serverの意図しない実装の詳細に依存します。
UPDATE
ベンチマークテストは、SQLサーバーの制約の下で、カーソル法は、蓄積を蓄積するための最速かつ最も安全な方法を計算することであることを示しています。更新スキルは最高のパフォーマンスを提供しますが、処理順に潜在的な問題があります。したがって、生産コードの場合、ラベルベースの方法を使用することをお勧めします。
テスト1:関連する子クエリ
テスト2:Cross -Connection
CREATE TABLE #t (
ord INT PRIMARY KEY,
total INT,
running_total INT
);
SET NOCOUNT ON;
DECLARE @i INT;
SET @i = 0;
BEGIN TRAN;
WHILE @i < 10000
BEGIN
INSERT INTO #t (ord, total) VALUES (@i, ABS(CHECKSUM(NEWID()) % 1000));
SET @i = @i + 1;
END;
COMMIT TRAN;
テスト3:カーソル
テスト4:スキルを更新
上記の4つの方法の実装効率を通じて、SQLサーバーでの蓄積を計算するベストプラクティスを取得できます。 実際のパフォーマンスは、データボリュームとサーバーの構成によって異なる場合があることに注意してください。<code class="language-sql">SELECT ord, total, (SELECT SUM(total) FROM #t b WHERE b.ord <= a.ord) AS RunningTotal FROM #t a ORDER BY a.ord;</code>
以上がSQL Serverで合計を実行する最も効率的な方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。