ホームページ >データベース >mysql チュートリアル >MySQL で累積合計を効率的に計算するにはどうすればよいですか?

MySQL で累積合計を効率的に計算するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-22 09:46:09260ブラウズ

How to Efficiently Calculate Cumulative Sums in MySQL?

MySQL に累積合計カラムを作成する

MySQL テーブルに累積合計列を作成するには複数の方法があり、それぞれに独自の利点と考慮事項があります。一般的なアプローチは、相関サブクエリを使用することです:

<code class="language-sql">SELECT t.id,
       t.count,
       (SELECT SUM(x.count)
          FROM TABLE x
         WHERE x.id <= t.id) AS cumulative_sum
  FROM TABLE t
 ORDER BY t.id;</code>

このクエリは、現在の行をテーブル内の以前のすべての行に関連付けることによって各行の累積合計を計算し、カウント値を効果的に集計します。

代わりに、MySQL 変数を使用することもできます:

<code class="language-sql">SELECT t.id,
       t.count,
       @running_total := @running_total + t.count AS cumulative_sum
  FROM TABLE t
  JOIN (SELECT @running_total := 0) r
 ORDER BY t.id;</code>

このメソッドは、インライン ビューとの相互接続を使用して、累積合計を追跡する変数 @running_total を初期化および更新します。この方法は MySQL に固有であり、他のデータベースには移植できない場合があることに注意してください。

どちらのメソッドでも、結果が必要な累積合計計算と一致していることを確認するために ORDER BY 句が必要です。 MySQL で累積合計列を作成する最も適切な方法を選択するときは、アプリケーションのコンテキストとパフォーマンス要件を考慮してください。

以上がMySQL で累積合計を効率的に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。