SELECT文を使って複雑な計算をして得た結果を、どこかに保存しておきたい場合がある。

この場合、以下のようにINSERT文を使ってSELECT文の結果を保存する方法がまず挙げられる。

INSERT INTO daily_sales
SELECT
	sales_date
	, SUM(sales_amount)
FROM
	sales
GROUP BY
	sales_date
;

また、PostgreSQLではCREATE TABLE AS文を使って、SELECT文の結果を新規テーブルとして作成することもできる。

CREATE TABLE daily_sales as
SELECT
	sales_date
	, SUM(sales_amount)
FROM
	sales
GROUP BY
	sales_date
;

前述のINSERT文を使った例だと、指定したテーブルのデータ型とSELECT文の結果として得たデータの型を一致させないといけないが、CREATE TABLE AS文の場合はデータ型を意識せずにクエリを書くことができるのが便利なところ。

ただ、他のRDBMSではサポートされていないことが多いので、あまり多用せず一度きりのクエリなどで使用することをおすすめする。