普段 orm で済ましているから機会がなかったが、SQLだけでクエリ〜集計まで全てやることがあったので備忘録として
generate_series
を使用して作成。当然 PostgreSQL 専用。
now()
や interval
の範囲を変えればいろんなケースに対応可能。
-- 1年以内の yyyy-MMのリスト
with year_month_list as (
select
to_char(generate_series, 'yyyy-MM') as date
from
generate_series(
(now() - interval '1 year') at time zone 'jst',
now() at time zone 'jst',
'1 month')
)