[pgsql-jp: 32574] 週単位の件数取得

HisashiChiba ch-999 @ beige.plala.or.jp
2004年 3月 25日 (木) 22:09:30 JST


千葉と申します。

週単位で件数を求める必要があり、そのSQL文がなかなか思いつ
きません。

テーブルは至って簡単で以下のようなものです。
項目名      |  属性
------------+--------------
取引先      |  bigint
氏名        |  varchar(32)
取引日      |  date
金額        |  bigint

このテーブルから毎週月曜から金曜までの、取引件数をCountする
スマートな方法が思いつきません。

自宅に環境がないのでテストできませんが、単純に考えたのは

select count(*) as 件数
from hoge
where 取引日 between '2004-01-01' and '2004-01-07' order by 取引日;

とするのは、週ごとに日付範囲を修正しなければならず、
さすがにこれは現実的ではないので、PostgreSQLの日本
語マニュアルを眺めてextract関数で引数にweekを使えば
良いのかとは思いますが、具体的にピンときません。

マニュアルの例では
extract(hour from timestamp '2001-02-16 20:38:40')
の様な記述がされていますが、hour を week に変えて

select extract(week,取引日) as 週, count(*) as 件数
from hoge
group by extract(week, 取引日)
order by 取引日;

等とできるものでしょうか。

尚、環境のバージョンは
RedHat 7.3
PostgreSQL 7.3.2
です。



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