sql >> データベース >  >> RDS >> PostgreSQL

Postgresql generate_seriesofmonths

    select DATE '2008-01-01' + (interval '1' month * generate_series(0,11))
    

    編集

    数値を動的に計算する必要がある場合は、次のことが役立ちます。

    select DATE '2008-01-01' + (interval '1' month * generate_series(0,month_count::int))
    from (
       select extract(year from diff) * 12 + extract(month from diff) + 12 as month_count
       from (
         select age(current_timestamp, TIMESTAMP '2008-01-01 00:00:00') as diff 
       ) td
    ) t
    

    これにより、2008-01-01からの月数が計算され、その上に12が追加されます。

    しかし、私はスコットに同意します。これを集合戻り関数に入れて、select * from calc_months(DATE '2008-01-01')のようなことを実行できるようにする必要があります。



    1. Microsoft SQLServer2012へのAdventureWorksデータベースサンプルのインストール

    2. PythonでMySQLにCSVデータをロードする

    3. SQLServer2008のリードラグ機能の代替

    4. OracleのCOMPOSE()関数