2017-08-12 114 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

这是累积和语法:

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子句order by是什么使之和累计。不分配它的名字。我可以告诉你,你不需要group by

+0

谢谢你这个工作! – Faheera

0

您可以使用在:

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