Witam.
W projekcie (postgre) posiadam tabelę locations, upraszczając:
CREATE TABLE locations
(
id serial NOT NULL,
"timestamp" timestamp without time zone
CONSTRAINT locations_pkey PRIMARY KEY (id)
)
Potrzebuję zliczyć ilość wpisów w tabeli z zadanego przedziału czasowego, grupując po dniu, co jest raczej trywialne:
SELECT to_timestamp(to_char(l.timestamp, 'YYYY-MM-DD'),'YYYY-MM-DD') AS x, count(*)
FROM locations l
WHERE l.timestamp BETWEEN to_timestamp('2012-02-23','YYYY-MM-DD') AND to_timestamp('2012-03-21','YYYY-MM-DD')
GROUP BY x ORDER BY x
Chciałbym jednak, aby zapytanie zwracało wyniki, dla każdego dnia z zadanego przedziału - dla dni, w których nie było wpisów w tabeli chcę dostać:
x | count
2012-04-05 0000+02 | 0