Re: aggregate functions in "SELECT"

From: Vik Fearing <vik(dot)fearing(at)dalibo(dot)com>
To: Gerald Cheves <gcheves(at)verizon(dot)net>, pgsql-novice(at)postgresql(dot)org
Subject: Re: aggregate functions in "SELECT"
Date: 2013-12-03 22:08:01
Message-ID: 529E5641.2060309@dalibo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

On 12/03/2013 10:44 PM, Gerald Cheves wrote:
> Dear Colleagues,
>
> How can I use the COUNT variable and the COL_YES variable to calculate
> a percentage COL_YES/COUNT*100?
>
> This operation isn't allowed in the "SELECT" statement.

You'll need to use a superquery. See below.

> Select g.STATE,
> g.COMPANY,
> g.MODEL,
> count(g.MODEL) as COUNT,
> coalesce(sum(case when COLORS = 'Yes' then 1 else 0 end),0) as
> COL_YES
> from gentech_12_13 as g
> where MODEL = '0387' and COMPANY = 'ACME'
> group by g.STATE, g.COMPANY, g.MODEL
> ;
>

SELECT state, company, model, count, col_yes, 100.0*col_yes/count
FROM (
Select g.STATE,
g.COMPANY,
g.MODEL,
count(g.MODEL) as COUNT,
coalesce(sum(case when COLORS = 'Yes' then 1 else 0 end),0)
as COL_YES
from gentech_12_13 as g
where MODEL = '0387' and COMPANY = 'ACME'
group by g.STATE, g.COMPANY, g.MODEL
) q;

--
Vik

In response to

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Gerald Cheves 2013-12-03 22:54:18 Re: aggregate functions in "SELECT"
Previous Message Gerald Cheves 2013-12-03 21:44:07 aggregate functions in "SELECT"