2017-08-12 25 views
1

列全体の累積合計を取得しようとしています。以下は私のデータのサンプルです。累積合計が機能しない

DT        ETB_DT 
Friday 00:00:00.0000000 Friday 04:00:00.0000000 
Friday 00:00:00.0000000 Friday 08:00:00.0000000 
Friday 00:00:00.0000000 Friday 12:00:00.0000000 
Friday 00:00:00.0000000 Friday 16:00:00.0000000 
Friday 00:00:00.0000000 Friday 20:00:00.0000000 

No_of_records 
22    
41 
86 
65 
25 

次のコードを使用して、前の行に追加する予定の累積列を取得しました。

Select * 
     ,cumulative = sum(No_of_records) 
From withoutcumulative4 
group by DT,ETB_DT,No_of_records 
    Order by DT 

ただし、次のように出力されます。

DT        ETB_DT 
Friday 00:00:00.0000000 Friday 04:00:00.0000000 
Friday 00:00:00.0000000 Friday 08:00:00.0000000 
Friday 00:00:00.0000000 Friday 12:00:00.0000000 
Friday 00:00:00.0000000 Friday 16:00:00.0000000 
Friday 00:00:00.0000000 Friday 20:00:00.0000000 

No_of_records cumulative 
22     22 
41     41 
86     86 
65     65 
25     25 

以下は私の出力です。

DT        ETB_DT 
Friday 00:00:00.0000000 Friday 04:00:00.0000000 
Friday 00:00:00.0000000 Friday 08:00:00.0000000 
Friday 00:00:00.0000000 Friday 12:00:00.0000000 
Friday 00:00:00.0000000 Friday 16:00:00.0000000 
Friday 00:00:00.0000000 Friday 20:00:00.0000000 

No_of_records cumulative 
22     22 
41     63 
86     149 
65     214 
25     239 

アイデアがありますか?本当に助けに感謝します。

答えて

0

これは、累積合計の構文は次のとおりです。order by

Select DT, ETB_DT, No_of_records 
     sum(No_of_records) over (order by DT, ETB_DT) as cumulative 
From withoutcumulative4 
Order by DT; 

over句は、合計が累積的にするものです。名前を付けない。

私が知る限り、あなたはgroup byは必要ありません。

+0

は、これが働いたありがとう! – Faheera

0

あなたは以上使用することができます。

Select * 
     ,cumulative = sum(No_of_records) over (order by ETB_DT) 
From withoutcumulative4 
    Order by DT