假设我有如下数据
Date A B
1/1 3 6
1/2 4 5
1/3 2 7我想编写一个创建列C的查询,其中C由Ai - Ai -1+ B计算。例如,对于1/2,列C将等于4-3+ 5 = 6。对于1/3,列C将等于2-4+7=5。任何帮助都将不胜感激!
发布于 2018-06-15 03:55:29
您可以使用LAG
SELECT *,
A + B - COALESCE(LAG(A) OVER(ORDER BY Date),0) AS c
FROM tab发布于 2018-06-15 03:55:33
您将使用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;https://stackoverflow.com/questions/50864940
复制相似问题