FIRST_VALUE()中具有IGNORE NULLS的异常行为(Vertica)

FIRST_VALUE()中具有IGNORE NULLS的异常行为(Vertica),第1张

FIRST_VALUE()中具有IGNORE NULLS的异常行为(Vertica)

功能按预期方式工作。

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)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5431817.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存