ホームページ >データベース >mysql チュートリアル >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 サイトの他の関連記事を参照してください。