PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como gerar a lista de meses no PostgreSQL?


Você pode gerar sequências de dados com o generate_series() função:
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;

Isso gera uma linha para cada mês, em um formato bonito. Se você quiser tê-lo como uma lista, você pode agregá-los todos em uma consulta externa:
SELECT string_agg("Mon-YY", ', ') AS "Mon-YY list"
FROM (
  -- Query above
) subsub;

SQLFiddle aqui