週別(月-日)の集計

今回使うテーブル

 num |     dt     
 ----+------------
 100 | 2010-01-01
 120 | 2010-01-02
  40 | 2010-01-03
  90 | 2010-01-04
  90 | 2010-01-05
 110 | 2010-01-06
  60 | 2010-01-07
  80 | 2010-01-08
  90 | 2010-01-10
  30 | 2010-01-12

月曜日から日曜日までの週別でnumの集計を取る。今回の場合、2009/12/28から2010/1/3、2010/1/4から2010/1/10、2010/1/11から2010/1/17という3つの期間の集計になる。

各レコードの週の頭(月曜日)の日付を取得する

 SELECT num, dt, dt - (CAST(EXTRACT(isodow FROM dt) AS int) - 1) FROM t1;

その日付でGROUP BYする

 SELECT SUM(num), dt - (CAST(EXTRACT(isodow FROM dt) AS int) - 1) AS _dt FROM t1 GROUP BY _dt;

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2010-11-14 (日) 04:28:38