まず、拡張機能tablefunc をインストールします。 、まだ行っていない場合。データベースごとに1回実行する必要があります。
CREATE EXTENSION tablefunc;
PostgreSQL 9.1が必要です CREATE EXTENSION
の場合 。古いバージョンでは、次のようなコマンドを使用してシェルからインストールスクリプトを実行する必要があります。
psql -d dbname -f SHAREDIR/contrib/tablefunc.sql
次に、次のようなクエリを使用できます:
SELECT *
FROM crosstab (
'SELECT id
,label
,value
FROM t
ORDER BY 1, 2',
'SELECT DISTINCT label
FROM t
ORDER BY 1')
AS tbl (
id int
,lab1 text
,lab2 text
,lab3 text
,lab4 text
,lab5 text
,lab6 text
);
要求したものを正確に返します。
そのための関数を作成することもできます。この