From: | Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com> |
---|---|
To: | Rajesh Kumar Mallah <mallah(at)trade-india(dot)com> |
Cc: | Tomasz Myrta <jasiek(at)klaster(dot)net>, <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: sql question regarding count(*) |
Date: | 2003-03-07 06:40:14 |
Message-ID: | 20030306223558.A87666-100000@megazone23.bigpanda.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On Fri, 7 Mar 2003, Rajesh Kumar Mallah wrote:
> On Friday 07 March 2003 11:41 am, Stephan Szabo wrote:
> > On Fri, 7 Mar 2003, Rajesh Kumar Mallah wrote:
> > > Tomasz did you notice the two queries are totally differet on different
> > > tables?
> >
> > A count() on a non-grouped table returns 1 row.
> >
> > A grouped table returns 1 row per group. If there are no groups, no rows
> > are returned. If the groups are filtered by a having clause, it might
> > also return no rows.
>
> True the second query does not return any row.
> even in first case no rows are returned.
>
> where is the difference?
>
I don't think I understand the question.
select userid from users where userid=-1
returns 1 row for each row the where clause returns true
and 0 rows if there are none.
select count(*) from users where userid=-1
returns 1 row (it's not a grouped table)
select count(*) from users where userid=-1 group by userid
returns 1 row if there is at least 1 row having userid=-1
or 0 rows otherwise (either there is a group or there isn't)
select count(*) from users where userid=-1 group by userid
having userid!=-1
should return 0 rows because even if there is a group it'll fail the
having clause.
From | Date | Subject | |
---|---|---|---|
Next Message | Rajesh Kumar Mallah | 2003-03-07 07:55:26 | Re: sql question regarding count(*) |
Previous Message | Rajesh Kumar Mallah | 2003-03-07 06:31:38 | Re: sql question regarding count(*) |