CREATE TABLE AS
Synopsis
Use the CREATE TABLE AS
statement to create a table using the output of a subquery.
Syntax
create_table_as ::= CREATE TABLE [ IF NOT EXISTS ] table_name
[ ( column_name [ , ... ] ) ] AS query
[ WITH [ NO ] DATA ]
create_table_as
Semantics
YugabyteDB may extend the syntax to allow specifying PRIMARY KEY for CREATE TABLE AS
command.
create_table_as
CREATE TABLE [ IF NOT EXISTS ] table_name
Create a table.
table_name
Specify the name of the table.
( column_name [ , ... ] )
Specify the name of a column in the new table. When not specified, column names are taken from the output column names of the query.
AS query [ WITH [ NO ] DATA ]
query
Examples
CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, k2));
INSERT INTO sample VALUES (1, 2.0, 3, 'a'), (2, 3.0, 4, 'b'), (3, 4.0, 5, 'c');
CREATE TABLE selective_sample SELECT * FROM sample WHERE k1 > 1;
yugabyte=# SELECT * FROM selective_sample ORDER BY k1;
k1 | k2 | v1 | v2
----+----+----+----
2 | 3 | 4 | b
3 | 4 | 5 | c
(2 rows)