sql >> Databasteknik >  >> RDS >> PostgreSQL

Hämtar radantal och returnerar 0 när inga rader

Förutsatt att skapats vara av typen date i brist på information.

Postgres tillhandahåller den underbara generate_series() för att göra detta enkelt:

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;

Detta hämtar minsta och högsta dag från ditt bord automatiskt och ger en rad per dag emellan.



  1. Förstå molnbaserad SQL Server-prestandaövervakning

  2. Varför stöder inte oracle uppdatering av flera tabeller i en enda fråga?

  3. Använder SUM på FLOAT-data

  4. Fulltext Sökresultat som liknar Mysql Gilla '%%'-fråga