我有一个包含以下列的表格:
ID, date, amount, amount2
列
amount2
仅在第一行中有值。
我需要使用该列前一行以及 amount2
列的值递归计算
amount
列的每一行
amount2
的第二行应该是:
amount2
的第一行值 -
amount
的第二行值
amount2
amount2
的第二行值 - amount
的第三行值
...
SELECT
first_column,
CASE
WHEN second_column IS NULL THEN LAG(first_column, 1, first_column) OVER (ORDER BY row_id) - LAG(first_column, 1, first_column) OVER (ORDER BY row_id DESC)
ELSE second_column
END AS calculated_second_column
from table;
可重现的示例: 创建表 your_table_name (id INT,
日期 日期,
金额 DECIMAL(10,2),
金额1 DECIMAL(10,2)
);
插入your_table_name(id,日期,金额,金额1)
(234, '2020-01-01', 4, 10),
(234,'2020-01-02',7,空),
(234,'2020-01-03',10,空),
(234,'2020-01-04',15,空),
(234, '2020-01-05', 6, 空);
我希望在 amount1 栏中有; 10, 10-7=3, 3-10=-7, -7-15=-22, -22-6=-28