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