Re: Possible to do this in one query? - Mailing list pgsql-sql

From Ian Barwick
Subject Re: Possible to do this in one query?
Date
Msg-id 200203270309.EAA29988@post.webmailer.de
Whole thread Raw
In response to Possible to do this in one query?  ("John Oakes" <john@networkproductions.net>)
List pgsql-sql
On Tuesday 26 March 2002 19:22, John Oakes wrote:
> I have a table with a column that contains fail codes.  These codes are
> 1-9. I need to get a count of each of the codes.  Right now I have separate
> queries:
>
> select count(*) from tablename
> where failcode = '1';
>
> If I use GROUP BY it obviously doesn't get the count for codes that don't
> exist.  I need to have 0 returned though so I have a listing of all 9 fail
> codes and their total, even if it is zero.  I tried UNION like this:
>
> select count(*) from tablename
> where failcode = '1';
> UNION
> select count(*) from tablename
> where failcode = '2';
>
> etc, but it too excludes the codes that have a count of zero.  Right now I
> have resorted to using 9 separate queries.  Is there a way to do this with
> one?  Thank you!

If you have a seperate table containing all possible fail codes you can do 
something like this:

select fc.failcode, count(tn.failcode) 
from failcode_table fc
left join tablename tn 
on tn.failcode=fc.failcode
group by fc.failcode


Ian Barwick


pgsql-sql by date:

Previous
From: "Kancha ."
Date:
Subject: resetting sequence
Next
From: Philip Hallstrom
Date:
Subject: Re: resetting sequence