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

グループ別のSQLServer累積合計

    SQL Server 2005では、相関サブクエリを使用してこれを行います。

    select dummy_id, date_registered, item_id, quantity, price,
           (select sum(quantity)
            from t t2
            where t2.item_id = t.item_id and
                  t2.date_registered <= t.date_registered
           ) as cumulative
    from table t;
    

    これを実際にテーブルに追加する場合は、テーブルを変更して列を追加してから、更新を行う必要があります。テーブルに挿入と更新がある場合は、テーブルを最新の状態に保つためにトリガーを追加する必要があります。クエリを介して取得するのは間違いなく簡単です。

    SQL Server 2012では、次の構文を使用してこれを行うことができます:

    select dummy_id, date_registered, item_id, quantity, price,
           sum(quantity) over (partition by item_id order by date_registered) as cumulative
    from table t;
    



    1. SQLServerの複数の列に一意の制約を作成する方法-SQLServer/TSQLチュートリアルパート96

    2. 別のテーブルの別の列を使用して1つの列を更新するにはどうすればよいですか? SQLエラー:ORA-00933:SQLコマンドが正しく終了していません

    3. 「ユーザーpostgresのパスワード認証に失敗しました」

    4. ST_DWithinは、パラメーターをメートルではなく次数として受け取ります。なぜですか?