我需要一个解决方案,根据date.Suppose找到缺失值的最近日期值。我有一个像下面的临时表,列有产品日期值
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,它将为null。 HANA中是否有任何功能可以从最近的日期值中获取值,如重复LAG的类型。
我不想做游标,据我所知,SQL脚本不支持CTE
BR 艾尔沙德
答案 0 :(得分:0)
请查看以下针对SAP HANA数据库的SQLScript语句
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脚本的输出如下