Vertica的with语句问题

Posted by hydra on 2019-11-24

关于Vertica使用CTE表达式所遇到的问题之一

今天在工作中遇到一个玄学问题,是关于Vertica使用with语句的问题,语句如下:

1
2
3
4
5
6
7
8
9
10
11
12
with a as (
select t1.c1, t1.c2,t2.c3 from table1 t1
join table2 t2 on t1.c3=t2.c3
)
,b as (
select * from table3
)
,aa as (
select * from a where grouprowid=1
)

select * from a join b on filter1 join aa on filter2

单独查询结果集a,b,aa,任何一个都可以秒出结果,但一当join起来,就完全查询不出来。
然后当我把a落地为结果表之后,后面无论怎么查询或join都没有问题了
最后还发现比较神奇的事,结尾一段select换种写法也没问题

1
select * from a,b,aa where filter1 and filter2

这种写法替换掉join,也可以秒出。
暂时不知道到底是vertica的问题还是DBeaver的问题。