週別(月-日)の集計今回使うテーブル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; |
|