CREATE TABLE AS#
Синтаксис#
CREATE [ OR REPLACE ] TABLE [ IF NOT EXISTS ] table_name [ ( column_alias, ... ) ]
[ COMMENT table_comment ]
[ WITH ( property_name = expression [, ...] ) ]
AS query
[ WITH [ NO ] DATA ]
Описание#
Создает новую таблицу, содержащую результат запроса SELECT. Для создания пустой таблицы используйте CREATE TABLE.
Необязательное предложение OR REPLACE заменяет существующую таблицу с
указанным именем новым определением таблицы. Поддержка замены таблиц зависит от
коннектора. Подробности см. в документации коннектора.
Необязательное предложение IF NOT EXISTS подавляет ошибку, если таблица уже
существует.
OR REPLACE и IF NOT EXISTS нельзя использовать вместе.
Необязательное предложение WITH можно использовать для задания свойств вновь
созданной таблицы. Чтобы вывести список всех доступных свойств таблицы,
выполните следующий запрос:
SELECT * FROM system.metadata.table_properties
Примеры#
Создать новую таблицу orders_column_aliased с результатами запроса и
заданными именами столбцов:
CREATE TABLE orders_column_aliased (order_date, total_price)
AS
SELECT orderdate, totalprice
FROM orders
Создать новую таблицу orders_by_date, которая агрегирует orders:
CREATE TABLE orders_by_date
COMMENT 'Summary of orders by date'
WITH (format = 'ORC')
AS
SELECT orderdate, sum(totalprice) AS price
FROM orders
GROUP BY orderdate
Создать таблицу orders_by_date, если она еще не существует:
CREATE TABLE IF NOT EXISTS orders_by_date AS
SELECT orderdate, sum(totalprice) AS price
FROM orders
GROUP BY orderdate
Создать новую таблицу empty_nation с той же схемой, что и nation, но без
данных:
CREATE TABLE empty_nation AS
SELECT *
FROM nation
WITH NO DATA