Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Snowflake using CTE to create table

Does Snowflake allow you to create a series of CTEs then join them together at the end to create a table?

For example:

with CTE1 as ( SELECT * FROM TABLE1)
,CTE2 AS (SELECT * FROM TABLE2)
,CTE3 AS (SELECT * FROM TABLE3)

CREATE TABLE TABLE_NAME_HERE AS 
SELECT * FROM CTE1 AS 1
LEFT JOIN CTE2 AS 2 ON 1.KEY = 2.KEY
LEFT JOIN CTE3 AS 3 ON 1.KEY = 3.KEY

I'm getting a unexpected 'CREATE'. error

like image 892
mikelowry Avatar asked May 16 '26 08:05

mikelowry


1 Answers

Yes, it is possible:

CREATE TABLE TABLE_NAME_HERE AS 
WITH CTE1 as ( SELECT * FROM TABLE1)
    ,CTE2 AS (SELECT * FROM TABLE2)
    ,CTE3 AS (SELECT * FROM TABLE3)
SELECT *     -- here should be explicit column list to avoid name duplication error
FROM CTE1 AS 1
LEFT JOIN CTE2 AS 2 ON 1.KEY = 2.KEY
LEFT JOIN CTE3 AS 3 ON 1.KEY = 3.KEY;
like image 189
Lukasz Szozda Avatar answered May 19 '26 03:05

Lukasz Szozda



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!