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 函数的数据库都支持它们。
当前结果:
所需结果:
我正在努力创建 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 函数的数据库都支持它们。