[pgsql-jp: 32912] クロス集計の方法について
Kaoru Tsuchiya
kaoru-t @ yf7.so-net.ne.jp
2004年 5月 8日 (土) 17:59:48 JST
土屋と申します。
集計の方法で困っています。
以下のようなテーブルの内容を id 毎に各場所の登録日付
を出したいのですが、上手くいきません。
過去ログ等からクロス集計の方法を参校にして以下のような
SQL文を作成しましたが、これではカウントされた値が表示されます。
t_test
id 場所 登録日付
------------------
001 AAA 04/01
002 AAA 04/03
003 BBB 04/01
001 CCC 04/01
001 BBB 04/10
002 BBB 04/11
003 CCC 04/21
↓ このような表示にしたい
id AAA BBB CCC
---------------------------
001 04/01 04/10 04/01
002 04/03 04/11
003 04/01 04/21
select id,
sum(case when 場所 = 'AAA' then 1 else 0 end) as AAA
sum(case when 場所 = 'BBB' then 1 else 0 end) as BBB
sum(case when 場所 = 'CCC' then 1 else 0 end) as CCC
from t_test group by id;
上記の SQL では以下のようになります。
id AAA BBB CCC
---------------------------
001 1 1 1
002 1 1 0
003 0 1 1
どのように SQL文を書けば良いでしょうか?
宜しくお願い申し上げます。
********************************************
Kaoru Tsuchiya
e-mail: kaoru-t @ yf7.so-net.ne.jp
********************************************
pgsql-jp メーリングリストの案内