[pgsql-jp: 30542] Re: 縦のデータを横に出力するSQL文
Takao Kato
sirius @ jp.fujitsu.com
2003年 7月 22日 (火) 09:02:35 JST
加藤@川崎です。
アイディアだけで申し訳ないのですが、
> id,key
> 1, a
> 2, a
> 3, a
> 4, b
> 5, b
を
> a,1,2,3,N,N
> b,4,5,N,N,N
ですが、GROUP BYとSUMを組み合わせたSQLが実現可能なのだから、次のような
PL/PGSQLも大丈夫だろうと検討したのですが、夢半ば断念してしまいました。
GROUP BYしたときあるカラムの値をリスト(配列)にする LISTS 関数
=> SELECT key,LISTS(id) as ids FROM test GROUP BY key;
key | ids
-----+---------
a | {1,2,3}
b | {4,5}
(以上、実行イメージ)
断念理由ですが、とても情けないは以下の2点です。後者で代用が効くため早々
に切り上げてしまいました。
・集約(配列)値の扱い方が良く分からない
−単純な配列渡し(ex. 10要素あって2要素を return する)でも ?_? な状態
・実行環境にPHPと言う優れた逃げ場(^^;)があった
参考にならず申し訳ありません。誰かが実現方法をサジェスションしてくれる
ことを合い乗りで期待していたりして ^^;
-------------------------------------------------------------
加藤@川崎
pgsql-jp メーリングリストの案内