Verwenden Sie date_trunc()
um Zeitstempel auf den Monat zu kürzen und sowohl Jahr als auch Monat in einer einzigen Spalte abzudecken. Sie können to_char()
verwenden um es beliebig zu formatieren.
Um die laufende Zählung zu erhalten, die Sie in Ihrer Zusatzfrage erwähnen, fügen Sie eine Fensterfunktion
SELECT to_char(date_trunc('month', period_start), 'Mon YYYY') AS month
, count(*) AS month_ct
, sum(count(*)) OVER (ORDER BY date_trunc('month', period_start)) AS running_ct
FROM activity_log
WHERE action = 'create_entry'
GROUP BY date_trunc('month', period_start);
sqlfiddle
für Psotgres 9.6
db<>fiddle hier
für Postgres 12
Fensterfunktionen werden nach ausgeführt Aggregatfunktionen, sodass wir eine Fensterfunktion über ein Aggregat auf derselben Abfrageebene ausführen können. Verwandte:
Es ist wichtig, denselben grundlegenden Ausdruck in der Fensterfunktion und in GROUP BY
zu verwenden :date_trunc('month', period_start)
.