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

SQL累積数

    カーソルの代わりに CTE を使用する方法は次のとおりです:

    WITH Base AS
    (
        SELECT ROW_NUMBER() OVER (ORDER BY [Count] DESC) RowNum,
        [Dept],
        [Count]
        FROM SR
    )
    SELECT SR.Dept, SR.Count, SUM(SR2.[Count]) Total
    FROM Base SR
    INNER JOIN Base SR2
        ON SR2.RowNum <= SR.RowNum
    GROUP BY SR.Dept, SR.Count
    ORDER BY SR.[Count] DESC
      

    これは Count の降順であることに注意してください あなたのサンプル結果のように。表示されていない他の列があり、注文に使用する必要がある場合は、Count を置き換えてください。 ORDER BY のそれぞれで

    SQL Fiddle のデモ



    1. REVERSE()関数を使用せずにOracle(11g)SQLで文字列を逆にする方法

    2. SQLServerで現在の日時から過去7日間までの過去7日間のデータを取得する方法

    3. PostgreSQLでデータベースの作成日を取得する

    4. NHibernateでGuidをId列として使用すると、MySQLを使用するときにフォーマット例外が発生します