[pgsql-jp: 35213] Re: 複数行を横展開して select する方法 (文字列)
a_yari
a_yari @ yahoo.co.jp
2005年 4月 8日 (金) 15:43:55 JST
あつしです。
> 【マスタテーブル】
> ID TITLE
> --------------
> 1 MASTER1
> 2 MASTER2
> --------------
>
> 【属性テーブル】
> ID Name
> --------------
> 1 AAAAAA
> 1 BBBBBB
> 1 CCCCCC
> 2 DDDDDD
> 2 EEEEEE
> --------------
>
>
> ■以下の様に抽出することは可能でしょうか?
>
> ID TITLE Name1 Name2 Name3 Name4
> --------------------------------------------
> 1 MASTER1 AAAAAA BBBBBB CCCCCC null
> 2 MASTER2 DDDDDD EEEEEE null null
> --------------------------------------------
>
contrib/tablefunc にcrosstabNという関数があります。
ちょうど今調べていたところでまだよく分かりませんがご希望の動作に
近いような気がします。
SELECT * FROM crosstab4('select title ,id,name from mast join attr
using(id) order by 1,2');
row_name category_1 category_2 category_3 category_4
----------------------------------------------------
MASTER1 AAAAAA BBBBBB CCCCCC
MASTER2 DDDDDD EEEEEE
詳しい仕様はわかりませんが参考になれば
---
a_yari @ yahoo.co.jp
pgsql-jp メーリングリストの案内