ホームページ >データベース >mysql チュートリアル >MySQL で累積合計列を効率的に生成するにはどうすればよいですか?
このガイドでは、MySQL データベース内で累積合計列を生成するための 2 つの効果的な方法について詳しく説明します。
方法 1: 相関サブクエリの利用
このアプローチでは、相関サブクエリを使用して累積合計を計算します。
<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>
AS
句内に埋め込まれた相関サブクエリは、各行の累積合計を動的に計算します。 テーブルの先頭から現在の行の count
までの id
値を合計します。
方法 2: MySQL 変数を活用する
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>
このメソッドは、クロス結合を使用して MySQL 変数 @running_total
を 0 に初期化します。 クエリが TABLE t
の各行を反復処理するにつれて、@running_total
は count
値を累積し、累積合計を生成します。
重要な考慮事項:
ORDER BY
句が必要です。 行の順序によって合計シーケンスが決まります。以上がMySQL で累積合計列を効率的に生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。