[pgsql-jp: 31410] Re: クロス集計について

Tsuji Takuya tsuttaku @ hotmail.com
2003年 11月 5日 (水) 10:56:32 JST


辻と申します。

>MS Accessでいうところのクロス集計クエリーというのに相当
>するSQLはPostgresではどのように書かれていますでしょうか?

ご質問の範囲なのですが、以下のようなデータがあったとして、
たとえば次のような集計を出したいということでしょうか。

 ID  性別  職業

 01   男  会社員
 02   女  会社員
 03   男  学生
 04   女  主婦
 05   男  会社員

 ↓

   会社員 学生 主婦
 男    2   1   0
 女    1   0   1

ここまでであれば、谷田さんのメールのとおり、集約関数を用いるケースと思われま
す。
 (SELECT COUNT(*),性別,職業 FROM テーブル GROUP BY 性別,職業 のように)

しかし、以下のように、各項ごとの総数までを一回で出したいということであれば、

加倉さんのご指摘のように CUBEが必要で、
これはPostgreSQLには実装されておらず、各条件ごとに別途 COUNT(*) するしか
なかったように思います。
しばらくPostgreSQLから離れているので、間違ってたら済みませんが。

  会社員 学生 主婦 (総数)
男    2   1   0   3
女    1   0   1   2
(総数) 3   1   1   5

_________________________________________________________________
あなたのPCを守るために定期的なセキュリティ対策を。マイクロソフト セキュリ
ティ情報センター http://www.microsoft.com/japan/protect/hm.asp 




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