[pgsql-jp: 30108] 複数条件でのgroup by について

日本テレネット(株) 橋詰 洋 hashizume @ linx.co.jp
2003年 6月 2日 (月) 17:23:35 JST


初めて質問させて頂きます。橋詰と申します。

環境
Redhat 7.0
PostgreSQL 7.0.3
Apache 1.3.19
PHP    4.0.3pl1

さて、上記環境で次のような"hogehoge_tbl"を作成しました。

------------------------------------
hogehoge_tbl

       a_name |   b_code   |
--------------+------------+
       あ     |      a     |
       あ     |      a     |
       あ     |      b     |
       い     |      a     |
       い     |      a     |
       い     |      b     |
------------------------------------
要件としては、上記テーブルから
a_name,b_codeの組み合わせが他のレコードと重複せずに
b_codeの個数を知りたく、

a = 2
b = 2

という結果を取得したいのですが、

SELECT b_code ,count(b_code) from hogehoge_tbl group by b_code;

としてから、いかに他のレコードと重複せず取得するかを
悩んでおります。

SELECT a_name ,count(b_code) from hogehoge_tbl group by b_code ,a_name;

とした場合、

a = 2 
a = 1
a = 2 
b = 1
b = 1

という形になります。
そこでgroup by したものをさらにgroup by してカウントを取ればよいのではないかと思い、

SELECT b_code ,count(b_code) from hogehoge_tbl where (SELECT a_name from hogehoge_tbl  group by a_name) group by b_code;

としてみたところ、下記エラーにてうまくいきませんでした。

ERROR:  WHERE clause must return type bool, not type varchar

大変初歩的な質問かもしれませんが、良い解決策の解る方、なにとぞご教授お願い致すます。




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