Thread: date_part, too many results?

date_part, too many results?

From
M.Mazurek@poznan.multinet.pl
Date:
Hi,
clicked table is empty for bannerid=1, so why is that row? How to get rid
of it?
tia
mazek

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)


Marcin Mazurek

-- 
administrator
MULTINET SA o/Poznan
http://www.multinet.pl/



Re: [SQL] date_part, too many results?

From
Tom Lane
Date:
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