sql >> データベース >  >> RDS >> Mysql

MySQLで累積合計列を作成する

    相関クエリの使用:

      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
    

    MySQL変数の使用:

      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
    

    注:

    • JOIN (SELECT @running_total := 0) r は相互結合であり、個別のSETを必要とせずに変数宣言を可能にします 指図。
    • テーブルエイリアスr 、サブクエリ/派生テーブル/インラインビューにはMySQLが必要です

    警告:

    • MySQL固有。他のデータベースに移植できない
    • ORDER BY は重要;これにより、順序がOPと一致し、より複雑な変数の使用に大きな影響を与える可能性があります(つまり、MySQLにないpsuedo ROW_NUMBER / RANK機能)


    1. SQLServerに200万行をすばやく挿入する

    2. PerconaLiveDublin-イベントのまとめとセッション

    3. Oracleの条件付きSUM

    4. SpringBatch-Postgresでメタデータテーブルを作成して実際のデータをmysqlにロードすることができません