sql >> Base de Datos >  >> RDS >> PostgreSQL

Recuperar el recuento de filas y devolver 0 cuando no hay filas

Asumiendo created ser del tipo date por falta de información.

Postgres proporciona el maravilloso generate_series() para hacerlo fácil:

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;

Esto recupera el día mínimo y máximo de su tabla automáticamente y proporciona una fila por día en el medio.