Rafal Pietrak wrote: > Hi All, > > This is ambarasing, but I've just noticed the following (which looks > inconsistant to inexperienced eye). Having a table: > > test=> CREATE TABLE xxx (id int, info text); > > With some rows in it, I try: > > test=> SELECT count(1) from xxx where id=1; > count > ------- > 0 > (1 row) > > This is correct (meaning, I expected that). But when I try to fetch the > actual selector used in the query as well, I get no rows instead. > > test=> SELECT count(1),id from xxx where id=1 group by id; > count | id > -------+---- > (0 rows) > > Is this a feature, or a bug? And in fact, is there a construct to get > both the count() and its selectors *in*case*, when the count is ZERO? > > All the above in postgres 8.1. It is supposed to work that way. In the first query, we have to return a row to show you the count, while in the second query, there is no 'id' value to show you, so we return nothing (nothing to GROUP BY). -- Bruce Momjian http://candle.pha.pa.us EnterpriseDB http://www.enterprisedb.com + If your life is a hard drive, Christ can be your backup. +