Jeg kan ikke tro, at det accepterede svar har så mange opstemmer – det er en forfærdelig metode.
Her er den korrekte måde at gøre det på, med date_trunc:
SELECT date_trunc('month', txn_date) AS txn_month, sum(amount) as monthly_sum
FROM yourtable
GROUP BY txn_month
Det er dårlig praksis, men du kan blive tilgivet, hvis du bruger
GROUP BY 1
i en meget enkel forespørgsel.
Du kan også bruge
GROUP BY date_trunc('month', txn_date)
hvis du ikke ønsker at vælge datoen.