From: | Oleg Lebedev <olebedev(at)waterford(dot)org> |
---|---|
To: | Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com>, Postgres SQL Mailing List <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: COUNT func |
Date: | 2001-10-18 23:04:25 |
Message-ID: | 3BCF5FF9.258EAC36@waterford.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
It worked!
I checked the query plan it generates, and it's really a one-pass scan.
thanks,
Oleg
Stephan Szabo wrote:
> On Thu, 18 Oct 2001, Oleg Lebedev wrote:
>
> > Hi,
> > I am trying to count the number or rows in a table with similar field
> > values. I want to do it in one table scan.
> > In other words, say I want to count the number of rows in Person table,
> > having age equal to 40, and the number of rows with status as 'married'.
> > I want Person table to be scanned only once during this query.
> > So, basically I want to do the following:
> > SELECT COUNT(age=40), COUNT(status='married')
> > FROM Person;
> >
> > I tried to use aggregate functions with group by and having clauses, but
> > I still can't figure it out (probably because of the lack of
> > experience).
>
> Maybe something like [untested]
> SELECT SUM(case when age=40 then 1 else 0 end),
> SUM(case when status='married' then 1 else 0 end)
> FROM PERSON;
> will work?
From | Date | Subject | |
---|---|---|---|
Next Message | Joseph Shraibman | 2001-10-19 00:25:44 | index question |
Previous Message | Stephan Szabo | 2001-10-18 22:39:22 | Re: COUNT func |