CREATE TABLE AS
CREATE TABLE AS
SELECT 쿼리의 결과를 그대로 새 테이블로 만들 때 쓰는 명령어예요. 데이터를 복사·집계해서 별도 테이블로 저장하고 싶을 때 매우 자주 활용돼요.
출처: 문서
본문
Synopsis
CREATE [ OR REPLACE ] TABLE [ IF NOT EXISTS ] table_name [ ( column_alias, ... ) ]
[ COMMENT table_comment ]
[ WITH ( property_name = expression [, ...] ) ]
AS query
[ WITH [ NO ] DATA ]
Description
SELECT 쿼리의 결과를 담은 새 테이블을 만들어요. 빈 테이블을 만들 때는 CREATE TABLE을 사용해요.
선택적인 OR REPLACE 절은 지정한 이름의 기존 테이블을 새 테이블 정의로 교체해요. 테이블 교체 지원 여부는 커넥터마다 달라요. 자세한 내용은 커넥터 문서를 참고하세요.
선택적인 IF NOT EXISTS 절은 테이블이 이미 존재할 때 오류를 무시해요.
OR REPLACE와 IF NOT EXISTS는 함께 사용할 수 없어요.
선택적인 WITH 절은 새로 만든 테이블에 속성을 설정할 때 사용해요. 사용 가능한 테이블 속성을 모두 보려면 다음 쿼리를 실행하세요:
SELECT * FROM system.metadata.table_properties
Examples
쿼리 결과와 지정한 컬럼 이름으로 새 테이블 orders_column_aliased를 만들려면:
CREATE TABLE orders_column_aliased (order_date, total_price)
AS
SELECT orderdate, totalprice
FROM orders
주문을 요약한 새 테이블 orders_by_date를 만들려면:
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
nation과 같은 스키마를 가진 데이터 없는 새 테이블 empty_nation을 만들려면:
CREATE TABLE empty_nation AS
SELECT *
FROM nation
WITH NO DATA
See also
CREATE TABLE, SELECT 명령과 함께 사용해요.
더 알아보기 (Learn more)
빈 테이블을 만드는 CREATE TABLE과 데이터를 조회하는 SELECT도 함께 확인해 보세요.