[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 メーリングリストの案内