条件に基づくSQLServerの現在の合計

キルティガ

特定のグループの現在の合計を順番に作成しています。シーケンスの間にゼロ値が発生し、ゼロレコードから現在の合計を開始する必要があります

select 
    Sno,
    Group,
    Value,
    sum(Value) over(partition by Group order by Sno) Cum_Value 
from 
    Table

出力:

Sno Group   Value   CumValue
-------------------------------
1   A   5   5
2   A   10  15
3   A   25  40
4   A   0   40
5   A   10  50
6   A   5   55
7   A   0   55
7   A   20  75

Sno Group   Value   CumValue
------------------------------
1   A   5   5
2   A   10  15
3   A   25  40
4   A   0   0--> zero occurs [starts running total again]
5   A   10  10
6   A   5   15
7   A   0   0--> zero occurs [starts running total again]
7   A   20  20
ゾロフ

次のアプローチを試すことができます。

入力:

CREATE TABLE #Data (
    Sno int, 
    [Group] varchar(1),   
    [Value] int
)
INSERT INTO #Data 
   (Sno, [Group], [Value])
VALUES
    (1, 'A', 5), 
    (2, 'A', 10), 
    (3, 'A', 25), 
    (4, 'A', 0),  
    (5, 'A', 10), 
    (6, 'A', 5),  
    (7, 'A', 0),  
    (8, 'A', 20)

ステートメント:

SELECT
    Sno, 
    [Group], 
    [Value],
    Changed,
    SUM([Value]) OVER (PARTITION BY Changed ORDER BY Sno) AS Cum_Value
FROM 
    (
    SELECT 
        Sno, 
        [Group], 
        [Value],
        SUM (CASE 
            WHEN [Value] = 0 THEN 1
            ELSE 0
        END) OVER (PARTITION BY [Group] ORDER BY Sno) AS Changed
    FROM #Data
    ) t

出力:

Sno Group   Value   Cum_Value
1   A       5       5
2   A       10      15
3   A       25      40
4   A       0       0
5   A       10      10
6   A       5       15
7   A       0       0
8   A      20       20

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

現在の合計値に基づく条件でSUM()OVER

分類Dev

行列条件に基づくExcelの合計

分類Dev

条件に基づく列の合計

分類Dev

以前の記録に基づくSQLServer2014の合計

分類Dev

条件に基づくSQLServerのもの

分類Dev

行と列の条件の基準に基づく合計

分類Dev

条件に基づく合計

分類Dev

他の列の値に基づく現在の合計

分類Dev

Rのifelse条件に基づくdata.frameの列の合計?

分類Dev

columnsNの条件に基づくcolumnAのPythonDataFrame合計値

分類Dev

パンダの条件に基づく列値の合計

分類Dev

特定の条件に基づく動的列の合計

分類Dev

複数の条件に基づくExcelの合計値

分類Dev

他の列の条件に基づく累積合計

分類Dev

Excelの基準に基づく合計

分類Dev

データ列に基づく現在の合計

分類Dev

特定の条件に基づく累積合計

分類Dev

R:条件に基づく単一列の合計

分類Dev

条件に基づく隣接する列の合計

分類Dev

結合に基づくSQLServer計算列

分類Dev

複数の条件に基づく累計

分類Dev

col値に基づくMySQLの合計

分類Dev

javascriptのキーに基づく合計

分類Dev

複数の行に基づく合計

分類Dev

親に基づく子の合計値

分類Dev

別の列に基づく合計

分類Dev

数量に基づく価格の合計

分類Dev

合計数の合計(ユーザー数に基づく現在の合計)-可能ですか?

分類Dev

パンダgroupby; if条件:合計else:別の列に基づく特定の列の最大