2017-03-02 29 views
0

通常在普雷斯托创建一个表(从现有的数据库表),我做的:普雷斯托创建表“与”查询

create table abc as (
select... 
) 

,而是为了让我的代码简单,我已经打破了子查询这样的:

with sub1 as (
select... 
), 

sub2 as (
select... 
), 

sub3 as (
select... 
) 

select 
from sub1 join sub2 on ... 
      join sub3 on ... 

我在哪里可以将create table语句放在这里?实际查询比上面更复杂,所以我试图避免必须将子查询放在主查询中。

回答

1

这可能是使用INSERT INTO不知道CREATE TABLE:

INSERT INTO s1 WITH q1 AS (...) SELECT * FROM q1

也许你可以给这个镜头:

CREATE TABLE s1 as WITH q1 AS (...) SELECT * FROM q1

0

我相信你需要 '包装' 整个这样的查询:

create table EXAMPLE as (
with sub1 as (
select ... 
), 
....... 

select 
from sub1.... 

) 
+0

没有工作。 – Moosa

0

语法就好像您将create table .. as添加到select一样。例如。以下为我工作的普雷斯托0.170:

create table memory.default.a as 
with w as (
    select * from (values 1) t(x) 
) 
select * from w; 

(我用实验memory连接器,这是复制pastable尝试一下。)