在2行之间计算

时间:2019-10-24 09:32:12

标签: sql tsql

想知道是否有人可以提供帮助? 我有一个问题,我需要计算第1行和第2行之间的差异,然后将其输入到另一列

该,我需要获取该列中的值,然后针对第3行进行计算,然后将该值输入到新列中的另一行中。

然后将该值用于计算第4行,依此类推

不确定是否有可能获得任何帮助

尝试过领先/落后,密集排名

下面是带有原始数据的表

Col1    Col2    Col3    Amt Date
10000   142211  1   -64.05  2005-07-19
10000   142211  2   64.05   2005-07-01
10000   142211  3   -74.91  2005-08-17
10000   142211  4   74.91   2005-08-01
10000   142211  5   -74.91  2005-09-19
10000   142211  6   74.91   2005-09-01
10000   142211  7   0.00    2005-01-01
10000   142211  8   74.91   2005-10-01
10000   142211  9   -74.91  2005-10-19
10000   142211  10  74.91   2005-11-01

1和2之间的差将进入一个新列

2 个答案:

答案 0 :(得分:0)

您只需要[first2, last2)函数。尝试点赞:

LAG

答案 1 :(得分:0)

您正在描述听起来像是累积函数。但是,我认为没有区别是有用的。我认为累计金额是有用的。 。 。并且您对数据中的负值感到困惑。

所以,这可能就是您真正想要的:

select t.*,
       sum(amount) over (partition by col1, col2 order by col3) as running_amount
from t;