[pgsql-jp: 32178] Re: 月別統計出力の方法がわかりません
ISHIDA Akio
iakio @ pjam.jpweb.net
2004年 2月 4日 (水) 17:15:16 JST
こんにちは。石田@苫小牧市です。
S.Kuzilla wrote:
(中略)
> やりたいのは、月度毎の集計を以下のような形で出力したいの
> ですが、
> どうやればいいか全くわかりません。
>
> 例:
> 商品id | 4| 5| total
> ----------+------+------+-------
> 001 | 3| 0| 3
> 002 | 1| 2| 3
> 003 | 1| 0| 1
>
> 出力する列(集計する月)はデータ抽出の際に指定します。
> 上の例では「4月、5月の月別利用回数と合計を出力」です。
>
> これって副問い合わせが必要なのでしょうか?
>
> どなたかご教授下さい。
> よろしくお願いします。
アプリケーション側で解決する、という
方法もありますが、以下のような方法もあります。
create table tbl_test (
商品ID char(3),
利用月度 int
);
insert into tbl_test values('001', 4);
insert into tbl_test values('002', 4);
insert into tbl_test values('003', 4);
insert into tbl_test values('001', 4);
insert into tbl_test values('001', 4);
insert into tbl_test values('002', 5);
insert into tbl_test values('002', 5);
insert into tbl_test values('001', 6);
insert into tbl_test values('003', 6);
insert into tbl_test values('003', 6);
insert into tbl_test values('003', 6);
insert into tbl_test values('001', 7);
select 商品id
, sum(case when 利用月度 = 4 then 1 else 0 end)
, sum(case when 利用月度 = 5 then 1 else 0 end)
, count(*)
from tbl_test
where 利用月度 in (4, 5)
group by 商品id
order by 商品id;
商品id | sum | sum | count
--------+-----+-----+-------
001 | 3 | 0 | 3
002 | 1 | 2 | 3
003 | 1 | 0 | 1
(3 行)
--
ISHIDA Akio<iakio @ pjam.jpweb.net>
pgsql-jp メーリングリストの案内