我希望将当前记录列(col1)与前一记录中的col2相加。
类似的东西:
col1 col2
----- ----
10 300
12 312
20 332
50 382
我可以对此查询使用滞后函数 WHEN col2是数据库列但是 col2用函数计算。否则col2是动态列。
现在如何产生预期的结果?
答案 0 :(得分:1)
lag()
应该可以使用函数调用。如果你愿意,你可以这样做:
with t(col1, col2) as (
select . . .
)
select (col1 + coalesce(lag(col2) over (order by col1), 0) as thesum
from t;
注意:这假设排序由col1
指定,考虑到问题中的示例,这似乎是合理的。