M.Mazurek@poznan.multinet.pl writes:
> clicked table is empty for bannerid=1, so why is that row? How to get rid
> bannerdb=> select count(*),date_part('dow',data::datetime) from clicked
> where bannerid=1 group by date_part('dow',data::datetime);
> count|date_part
> -----+---------
> 0|
> (1 row)
It's not date_part's fault, it's count's fault. There should be no rows
out if you have GROUP BY and no groups, but 6.5 and prior Postgres
releases emit a dummy row anyway. This is a longstanding bug in
Postgres's handling of aggregate functions. It's fixed for 7.0, if you
want to try running the beta version... if not, you could add
HAVING count(*) > 0 as a temporary workaround.
regards, tom lane