我在IGNORE NULLS参数中看到了Vertica的FIRST_VALUE()分析函数中的意外行为。它不应该返回NULL。IGNORE NULLS(Vertica)在FIRST_VALUE()中出现意外的行为
问题就在这个小桌子出现:
drop table if exists temp;
create table temp (time_ timestamp(6), name varchar(10));
insert into temp (time_) values ('2016-03-18 20:32:16.144');
insert into temp (time_, name) values ('2016-03-18 20:52:09.062', 'abc');
下面是表的内容(从临时选择*):
time_ | name
------------------------+--------
2016-03-18 20:32:16.144 | <null>
2016-03-18 20:52:09.062 | abc
这里是我运行查询:
select time_,
first_value(name ignore nulls) over (order by time_) first_name
from temp;
下面是该查询返回的结果:
time_ | first_name
------------------------+------------
2016-03-18 20:32:16.144 | <null>
2016-03-18 20:52:09.062 | abc
下面是这个查询我希望(与欲望)的结果:
time_ | first_name
------------------------+------------
2016-03-18 20:32:16.144 | abc
2016-03-18 20:52:09.062 | abc
难道上面的查询有一个很基本的语法错误? Vertica Community Edition 7.1.1上会出现此问题。
非常有趣。看起来更像是一个错误,而不是一个功能,但很高兴知道整个故事。谢谢! – verbatross
@verbatross,看我编辑的答案。 –
感谢您的额外示例!超级有用。 – verbatross