最近的日期值
Nearest date value
我需要一个解决方案来根据 date.Suppose 找到缺失值的最近日期值我有一个临时的 table,如下所示,其中包含 Product Date Value
列
Product Date Value
P1 1/10 10
P1 2/10 20
P1 3/10
P1 4/10
在这里您发现日期 3/10 和 4/10 没有值,它应该从最近的日期 2/10 复制值到 3/10 和 4/10,即 20。
我在 HANA 中使用了滞后函数,它只复制 3/10 的值,而对于日期 4/10,它是空的。
HANA 中是否有任何函数可以从最近的日期值中获取值,例如重复 LAG。
我不想做游标,据我所知 SQL 脚本不支持 CTE
BR
阿尔沙德
能否请您检查以下 SQLSAP HANA 数据库的脚本语句
select
Product, Date, Value
from (
select
pv.Product,
pv.Date,
ifnull(pv.Value, p.Value) as Value,
row_number() over (partition by pv.Product, pv.Date order by p.Date desc) as rn
from ProductValue pv
left join ProductValue p
on
pv.Value is null and
p.Product = pv.Product and
p.Date < pv.Date and
p.Value is not null
) t
where rn = 1
order by
Product,
Date
我在 WHERE 子句
中结合使用了自连接和 ROW_NUMBER() 函数
上述SAP HANA SQL脚本的输出如下
我需要一个解决方案来根据 date.Suppose 找到缺失值的最近日期值我有一个临时的 table,如下所示,其中包含 Product Date Value
列Product Date Value
P1 1/10 10
P1 2/10 20
P1 3/10
P1 4/10
在这里您发现日期 3/10 和 4/10 没有值,它应该从最近的日期 2/10 复制值到 3/10 和 4/10,即 20。 我在 HANA 中使用了滞后函数,它只复制 3/10 的值,而对于日期 4/10,它是空的。 HANA 中是否有任何函数可以从最近的日期值中获取值,例如重复 LAG。
我不想做游标,据我所知 SQL 脚本不支持 CTE
BR 阿尔沙德
能否请您检查以下 SQLSAP HANA 数据库的脚本语句
select
Product, Date, Value
from (
select
pv.Product,
pv.Date,
ifnull(pv.Value, p.Value) as Value,
row_number() over (partition by pv.Product, pv.Date order by p.Date desc) as rn
from ProductValue pv
left join ProductValue p
on
pv.Value is null and
p.Product = pv.Product and
p.Date < pv.Date and
p.Value is not null
) t
where rn = 1
order by
Product,
Date
我在 WHERE 子句
中结合使用了自连接和 ROW_NUMBER() 函数上述SAP HANA SQL脚本的输出如下