PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak wygenerować listę miesięcy w PostgreSQL?

Możesz generować sekwencje danych za pomocą generate_series() funkcja:

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;

To generuje wiersz na każdy miesiąc, w ładnym formacie. Jeśli chcesz mieć to jak listę, możesz zebrać je wszystkie w zewnętrznym zapytaniu:

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

SQLFiddle tutaj



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przekonwertować znacznik czasu na liczbę całkowitą (epoka Uniksa) w Postgresie

  2. Błędy w ewolucjach na Heroku

  3. Postgres:Jak zrobić klucze kompozytowe?

  4. PostgreSQL:pokaż podróże w obrębie ramki ograniczającej

  5. Zapytania PostgreSQL nie zostały zabite podczas wyłączania serwera aplikacji