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

現在の行の累積値 + 前の行の合計

    このように:

    ;WITH cte
    AS
    (
       SELECT ColumnB, SUM(ColumnA) asum 
       FROM @t 
       gROUP BY ColumnB
    
    ), cteRanked AS
    (
       SELECT asum, ColumnB, ROW_NUMBER() OVER(ORDER BY ColumnB) rownum
       FROM cte
    ) 
    SELECT (SELECT SUM(asum) FROM cteRanked c2 WHERE c2.rownum <= c1.rownum),
      ColumnB
    FROM cteRanked c1;
      

    これにより、以下が得られるはずです:

    ColumnA    ColumnB
    3             a
    6             b
    10            c
    15            d
      

    ライブ デモ



    1. SQL Plusからストアドプロシージャを実行する方法は?

    2. PostgreSQLデータベースでFIPSを有効にする

    3. Python:mysqlデータベースの変更に関する通知を取得する方法は?

    4. PHP-MYSQL:UnixタイムスタンプをDateTimeに、またはその逆に変換する