Re: SQL Question - Using Group By - Mailing list pgsql-general

From ksherlock@gmail.com
Subject Re: SQL Question - Using Group By
Date
Msg-id 1172266961.049030.91440@a75g2000cwd.googlegroups.com
Whole thread Raw
In response to SQL Question - Using Group By  ("Mike" <akiany@gmail.com>)
Responses Re: SQL Question - Using Group By  ("Mike" <akiany@gmail.com>)
Re: SQL Question - Using Group By  (Alban Hertroys <alban@magproductions.nl>)
List pgsql-general
You could use COUNT() in conjunction with NULLIF:

select "Type",
count(nullif("Active", false)) as "Active Count",
count(nullif("Active", true)) as "Inactive Count",
100 * count(nullif("Active", false)) / count(*) as "Active Percent"
from table_name group by "Type"


On Feb 23, 2:50 pm, "Mike" <aki...@gmail.com> wrote:
> Hi,
>
> I have a question about using Group By.
>
> On a table like this:
>
> Type (varchar)     |     Active (boolean)
> --------------------------------------------------------
> Type One           |      False
> Type Two           |      True
> Type One           |      True
> Type Fifty           |      Flase
> Type Two           |      True
>
> Having this table I want a report grouping Types and giving me more
> statistics such as:
>
> Type    |    Active Count    |     Inactive Count    |    Active
> Percent
>
> How do i do that?
>
> I can think of :
>
> select Type from table_name group by Type
>
> But that doesn't give me how many active and inactive each had!
>
> Please help me here understand how to approach this.
>
> Thank you,
> Mike



pgsql-general by date:

Previous
From: "Mike"
Date:
Subject: SQL Question - Using Group By
Next
From: "Robert Haas"
Date:
Subject: Re: complex referential integrity constraints