想知道是否有人可以提供帮助? 我有一个问题,我需要计算第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之间的差将进入一个新列
答案 0 :(得分:0)
您只需要[first2, last2)
函数。尝试点赞:
LAG
答案 1 :(得分:0)
您正在描述听起来像是累积函数。但是,我认为没有区别是有用的。我认为累计金额是有用的。 。 。并且您对数据中的负值感到困惑。
所以,这可能就是您真正想要的:
select t.*,
sum(amount) over (partition by col1, col2 order by col3) as running_amount
from t;