插入新列,从另一列添加系列

时间:2015-05-11 19:19:34

标签: sql sql-server running-total

我有一个表格,其中包含每个日期的日期和关注者增长情况,并希望制作一个新列,描述获得的关注者总数。

如何插入一个新列,基本上添加了新的关注者'列到求和系列?

date    | new followers
-----------------------    
1/1/15 |    1
1/2/15 |    3
1/3/15 |    5
1/4/15 |    4
1/5/15 |    3

新表格看起来像

date    | new followers | total followers gained
------------------------------------------------
1/1/15  |   1           |    1
1/2/15  |   3           |    4
1/3/15  |   5           |    9
1/4/15  |   4           |   13
1/5/15  |   3           |   16

1 个答案:

答案 0 :(得分:0)

这个SQL将通过Select完成您想要的任务。如果确实需要在表中保留此值,则可以在触发器中使用此SQL。但是既然你可以动态计算这个数额,我不确定你为什么坚持它。

declare @tempTable table (theDt datetime, newFollowers int)

insert into @tempTable
select '1/1/15',1
UNION select '1/2/15',3
UNION select '1/3/15',5
UNION select '1/4/15',4
UNION select '1/5/15',3

select t1.theDt, 
       t1.newFollowers + SUM(case when t2.theDt IS not null then t2.newFollowers else 0 end) as "Total Followers"
from @tempTable t1
left outer join @tempTable t2 on t1.theDt > t2.theDt
group by t1.theDt, t1.newFollowers
order by t1.theDt