该功能按预期方式工作。
over (order by time_)是的快捷方式,
over (order by time_ range unboundedpreceding)它是的快捷方式
over (order by time_ range between unbounded preceding andcurrent row),这意味着每一行都只能看到其前面的行,包括本身。
第一行仅显示自身,因此其范围内没有非NULL值。
如果要整个作用域的第一个非NULL值,则必须指定整个作用域:
first_value(name ignore nulls) over (order by time_ range between unbounded preceding and unbounded following) first_name
不,这绝对不是错误。
您可能一直在使用诸如
sum(x) over (order by y)运行总计之类的语法,而RANGE UNBOUNDED
PRECEDING的默认窗口对您来说似乎很自然。
由于尚未为FIRST_VALUE函数定义显式窗口,因此您一直在使用相同的默认窗口。
这是另一个测试用例:
ts val-- ----1 NULL2 X3 NULL4 Y5 NULL
您希望从以下功能中得到什么?
last_value (val) order (by ts)
您希望从以下功能中得到什么?
last_value (val ignore nulls) order (by ts)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)