PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Regrouper les résultats de la requête par mois et par année dans postgresql

Je ne peux pas croire que la réponse acceptée ait autant de votes positifs - c'est une méthode horrible.

Voici la bonne façon de le faire, avec date_trunc :

   SELECT date_trunc('month', txn_date) AS txn_month, sum(amount) as monthly_sum
     FROM yourtable
 GROUP BY txn_month

C'est une mauvaise pratique mais vous pourriez être pardonné si vous utilisez

 GROUP BY 1

dans une requête très simple.

Vous pouvez également utiliser

 GROUP BY date_trunc('month', txn_date)

si vous ne souhaitez pas sélectionner la date.