From: | Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com> |
---|---|
To: | Oleg Lebedev <olebedev(at)waterford(dot)org> |
Cc: | Postgres SQL Mailing List <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: COUNT func |
Date: | 2001-10-18 22:39:22 |
Message-ID: | Pine.BSF.4.21.0110181538210.28566-100000@megazone23.bigpanda.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
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 | Oleg Lebedev | 2001-10-18 23:04:25 | Re: COUNT func |
Previous Message | Josh Berkus | 2001-10-18 22:09:54 | Re: Doing a regexp-based search/replace? |