ビュー操作のまとめ【PostgreSQL】

未分類

【頻出】ビュー操作のまとめ

ビュー操作のうち、特に頻出のものをまとめました。

 

1.ビューの作成

CREATE OR REPLACE VIEW ビュー名 AS
SELECT xxx , xxx, … FROM テーブル名;

ここで詳しく説明しています → ビュー(VIEW)を作成する、削除する

 

2.ビューの削除

DROP VIEW ビュー名;

ここで詳しく説明しています → ビュー(VIEW)を作成する、削除する

 

3.マテリアライズドビューの作成

--ビュー作成の構文にMATERIALIZEDがつく形
CREATE MATERIALIZED VIEW ビュー名 AS
SELECT xxx , xxx, … FROM テーブル名;

ここで詳しく説明しています → マテリアライズドビュー(マテビュー)を作成する

 

4.マテリアライズドビューのINDEX作成

CREATE UNIQUE INDEX ON マテビュー名(列1 , 列2 , ・・・);

 

5.マテリアライズドビューの更新

REFRESH MATERIALIZED VIEW マテビュー名;              --通常のリフレッシュ文
REFRESH MATERIALIZED VIEW CONCURRENTLY マテビュー名; --←これにはINDEX作成が必要

 

6.ウィンドウ関数

SELECT 
rank() OVER(PARTITION BY 列名 order by 列名 desc) AS aaa
--avg(列名)、min(列名)、max(列名)、sum(列名)等も使える 
--filterで集計する対象を指定できる。FROMの後のWHEREとは意味が異なる点に注意。
, avg(列名) filter(where 条件文) OVER(PARTITION BY 列名 order by 列名 desc) AS bbb
FROM テーブル名
WHERE XXXX --ここの条件文はSELECT文そのものの抽出条件