ホームページ  >  に質問  >  本文

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

<p>次のようなテーブルがあります:</p> <pre class="brush:php;toolbar:false;">ID カウント 1 100 2 50 3 10 <p>cumulative_sum という新しい列を追加したいので、テーブルは次のようになります。 </p> <pre class="brush:php;toolbar:false;">id カウント累積合計 1 100 100 2 50 150 3 10 160</pre> <p>これを簡単に実現できる MySQL 更新ステートメントはありますか?最善のアプローチは何ですか? </p>
P粉670838735P粉670838735448日前490

全員に返信(2)返信します

  • P粉245276769

    P粉2452767692023-08-23 09:47:13

    関連クエリを使用する:


    リーリー

    MySQL 変数を使用する:


    リーリー ###知らせ:###

      JOIN (SELECT @running_total := 0) r
    • は、別の SET コマンドを必要とせずに変数を宣言できるクロス結合です。 MySQL では、サブクエリ/派生テーブル/インライン ビューにテーブル エイリアスが必要です
    • r
    • ###予防:###
    MySQL にのみ適用され、他のデータベースには移植できません

      ORDER BY
    • は非常に重要で、順序が元の質問と一致していることが保証され、より複雑な変数の使用法に大きな影響を与える可能性があります (例: MySQL ではサポートされていない疑似 ROW_NUMBER/RANK 機能) )
    • 返事
      0
  • P粉006540600

    P粉0065406002023-08-23 00:13:27

    パフォーマンスが問題になる場合は、MySQL 変数を使用できます。

    リーリー

    または、cumulative_sum 列を削除して、すべてのクエリで計算することもできます。

    リーリー

    これは累積合計を連続的に計算します:)

    返事
    0
  • キャンセル返事