ホームページ >データベース >mysql チュートリアル >MySQL で累積合計列を効率的に作成するには?

MySQL で累積合計列を効率的に作成するには?

DDD
DDDオリジナル
2025-01-22 09:52:10200ブラウズ

How to Efficiently Create a Cumulative Sum Column in MySQL?

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

累積合計列 (cumulative_sum) をテーブルに追加するには、既存の列を累計で更新する必要があります。 MySQL でこれを実現する 2 つの方法は次のとおりです:

相関サブクエリを使用します:

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

このクエリは、ネストされたクエリを使用して、現在の行 ID 以下の ID を持つ行に基づいて各行の累積合計を計算します。

MySQL 変数を使用します:

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

このメソッドは MySQL 変数を利用して、行を反復しながら累計を追跡します。 @running_total 変数は 0 に初期化され、行ごとに増分されます。

注:

  • これらのメソッドは MySQL に固有であり、他のデータベースには移植できない場合があります。
  • 特に複雑な計算に変数を使用する場合、正しい順序を維持することが重要です。

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

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