PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Recupero del conteggio delle righe e restituzione di 0 quando non ci sono righe

Supponendo che created essere di tipo date per mancanza di informazioni.

Postgres fornisce il meraviglioso generate_series() per renderlo 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;

Questo recupera automaticamente il giorno minimo e massimo dalla tua tabella e fornisce una riga al giorno in mezzo.