2017-03-02 63 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嘗試一下。)