Gebruik date_trunc()
om tijdstempels af te kappen tot de maand en zowel jaar als maand in één kolom te dekken. U kunt to_char()
. gebruiken om dat op elke gewenste manier te formatteren.
Om de lopende telling te krijgen die u in uw aanvullende vraag noemt, voegt u een vensterfunctie
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
voor Psotgres 9.6
db<>fiddle hier
voor Postgres 12
Vensterfuncties worden na . uitgevoerd aggregatiefuncties, zodat we een vensterfunctie op een aggregaat op hetzelfde queryniveau kunnen uitvoeren. Gerelateerd:
Het is essentieel om dezelfde basisuitdrukking te gebruiken in de vensterfunctie en in GROUP BY
:date_trunc('month', period_start)
.