首页 > 解决方案 > 在 2 行之间计算

问题描述

想知道是否有人可以提供帮助?我有一个问题,我需要计算第 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 之间的差异将进入新列

标签: sqltsql

解决方案


您正在描述听起来像累积函数的东西。但是,我认为差异没有用。我认为累积总和很有用。. . 并且您对数据中的负值感到困惑。

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

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

推荐阅读