* 週別(月-日)の集計 [#c98729a7]
** 今回使うテーブル [#a5fe5ddf]
 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つの期間の集計になる。
月曜日から日曜日までの週別でnumの集計を取る。今回の場合、2009/12/28から2010/1/3、2010/1/4から2010/1/10、2010/1/11から2010/1/17という3つの期間の集計になる。

** 各レコードの週の頭(月曜日)の日付を取得する [#ce178974]
 SELECT num, dt, dt - (CAST(EXTRACT(isodow FROM dt) AS int) - 1) FROM t1;

** その日付でGROUP BYする [#md98cecd]
 SELECT SUM(num), dt - (CAST(EXTRACT(isodow FROM dt) AS int) - 1) AS _dt FROM t1 GROUP BY _dt;

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