所以,假设我有以下数据
Date A B
1/1 3 6
1/2 4 5
1/3 2 7
我想编写一个创建列C的查询,其中C由A [i] - A [i - 1] + B计算。例如,对于1/2,列C将等于4 - 3 + 5 = 6.对于1/3,C列将等于2 - 4 + 7 = 5.任何帮助将不胜感激!
答案 0 :(得分:0)
您可以使用LAG
:
SELECT *,
A + B - COALESCE(LAG(A) OVER(ORDER BY Date),0) AS c
FROM tab
答案 1 :(得分:0)
您可以使用lag()
:
select date, a, b,
(a + b - lag(a) over (order by date)) as c
from t;
这会在第一行产生null
。如果您希望将“上一行”视为0
而不是null
,请使用lag()
的3参数形式:
select date, a, b,
(a + b - lag(a, 1, 0) over (order by date)) as c
from t;