SQL:识别每行最新的最大序列

SQL: Identifying latest max sequence per row

当前结果:

所需结果:

我正在努力创建 Latest_Funded_Seq 标志。其背后的逻辑是在 Funded_Seq 为 NULL

的情况下采用最新的最大值 Funded_Seq

任何帮助将不胜感激!

ANSI 标准方法使用 lag()ignore nulls 选项:

select lag(funded_seq ignore nulls) over (order by appseq) as latest_funded_seq,
       t.*
from t;

甚至有些支持window功能的数据库不支持ignore nulls,但这是ANSI标准解决方案

如果 funded_seq 是有序的(如问题中的数据),则累积最大值解决了问题:

select max(funded_seq) over (order by appseq) as latest_funded_seq,
       t.*
from t;

累积最大值也是 ANSI 标准。实际上,所有支持 window 函数的数据库都支持它们。