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