PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Zeilenanzahl abrufen und 0 zurückgeben, wenn keine Zeilen vorhanden sind

Angenommen created vom Typ date sein aus Mangel an Informationen.

Postgres bietet den wunderbaren generate_series() Um es einfach zu machen:

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;

Dies ruft automatisch den minimalen und maximalen Tag aus Ihrer Tabelle ab und liefert dazwischen eine Zeile pro Tag.