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

PostgreSQLで月リストを生成する方法は?

    generate_series()を使用してデータのシーケンスを生成できます 機能:

    SELECT to_char(generate_series(min, max, '1 month'), 'Mon-YY') AS "Mon-YY"
    FROM (
      SELECT date_trunc('month', min(startdate)) AS min, 
             date_trunc('month', max(startdate)) AS max
      FROM a) sub;
    

    これにより、毎月の行がきれいな形式で生成されます。リストのようにしたい場合は、それらすべてを外部クエリに集約できます:

    SELECT string_agg("Mon-YY", ', ') AS "Mon-YY list"
    FROM (
      -- Query above
    ) subsub;
    

    SQLFiddleはこちら



    1. Oracleselect相互サブ文字列

    2. MySQLに最適化されたクエリ

    3. MySQL LIKE vs LOCATE

    4. フェイルオーバー前またはフェイルオーバー後のスクリプトを使用したMySQLおよびMariaDBのレプリケーションフェイルオーバーの制御