我以为我明白它是如何工作的,但现在我很困惑。
我有一个数据集:
id date value
1 20080101 null
2 20090101 34
3 20100101 null
三条记录,分别是 2008 年 1 月、2009 年和 2010 年。现在我想用最新的非空值创建一个新列“value2”。基本上我想要一个具有 3 个 34 秒的 value2 列。我写的:
select id, date, value, first_value(value) ignore nulls over (order by date desc) as value2 from table
但是,我得到了:
id date value value2
1 20080101 null 34
2 20090101 34 34
3 20100101 null null
最后一个值仍然是 null 而不是 34。这里出了什么问题?