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