[PostgreSQL] SELECT文を使って日付の連続(連番)データを生成する方法


SELECT current_date - s.i as dates FROM generate_series(1,30) AS s(i);
結果

   dates
------------
 2011-09-29
 2011-09-28
 2011-09-27
 2011-09-26
 2011-09-25
 2011-09-24
 2011-09-23
 2011-09-22
 2011-09-21
 2011-09-20
 2011-09-19
 2011-09-18
 2011-09-17
 2011-09-16
 2011-09-15
 2011-09-14
 2011-09-13
 2011-09-12
 2011-09-11
 2011-09-10
 2011-09-09
 2011-09-08
 2011-09-07
 2011-09-06
 2011-09-05
 2011-09-04
 2011-09-03
 2011-09-02
 2011-09-01
 2011-08-31
(30 行)
アクセス集計や注文集計をしたいときは、上記の結果に対してLEFT JOINしてやれば、歯抜けレコードがないきれいな日次集計をすることができます。
(要は、注文ゼロの日はちゃんんとゼロとして表示される)

すごい便利なのでぜひ試してみてください!
カテゴリ: