[pgsql-jp: 30928] Re: レコード内容から列名を取得・生成?するSQL

Takao Kato sirius @ jp.fujitsu.com
2003年 9月 3日 (水) 13:55:23 JST


加藤@川崎です。

> せっかく喜んでいるのに水を差すようですが、あれって上のように
> 複数の列で使った場合、中身の順序が必ず対応するんでしょうか?
> 何もしなければ、わざわざ違う順になるとは考えにくいですが、
> それぞれをソートしちゃうとだめですよね。
> (集合になってるので順序を見てはいけないってことでしょうね)

一応サンプルした範囲ですが(ソートした順番で)集合化されていました。
ただ、サンプル数が少なかったので、

=> SELECT * FROM t_test_datas;
    t   |   i   |  d
--------+-------+----
T01	| 1	| aaa
T02	| 2	| aab
	  :
T26	| 26	| aaz
T01	| 27	| aba
T02	| 28	| abb
	  :
T26	| 17576	| zzz
(rows 17576)

で以下のSQLを試してみました。

=> SELECT t,int4_list(i),text_list(d) FROM t_test_datas GROUP BY t;

結果的に一切ソートしていなかったので順番はめちゃくちゃでしたが i と d 
の組合せは問題ありませんでした。ソートする要素がなければ駄目ですが、ソー
トする要素さえあれば、

=> SELECT t,int4_list(i),text_list(d) FROM (
     SELECT t,i,d FROM t_test_datas ORDER BY i) a GROUP BY t;

でうまく動作しますね。^^;
-------------------------------------------------------------
加藤@川崎



pgsql-jp メーリングリストの案内