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

Récupérer le nombre de lignes et renvoyer 0 lorsqu'il n'y a pas de lignes

En supposant que created être de type date par manque d'informations.

Postgres fournit le merveilleux generate_series() pour rendre cela facile :

SELECT d.created, COUNT(s.id) AS ct
FROM  (
   SELECT generate_series(min(created)
                        , max(created), interval '1 day')::date AS created
   FROM   signups
   ) d
LEFT   JOIN signups s USING (created)
GROUP  BY 1
ORDER  BY 1 DESC;

Cela récupère automatiquement le jour minimum et maximum de votre table et fournit une ligne par jour entre les deux.