From: | Renato De Giovanni <rdg(at)viafractal(dot)com(dot)br> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Difficult SQL Statement |
Date: | 2001-05-30 13:25:24 |
Message-ID: | 3B14F4C4.EAEA74C6@viafractal.com.br |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general pgsql-sql |
> I have a table that has the following columns: AUTHOR_NO, ASMT_CODE, &
> STATUS. The table would look something like this:
> AUTHOR_NO ASMT_CODE STATUS
> 12345 1 PASSED
> 12345 2 FAILED
> 12345 3 FAILED
> 12345 4 PASSED
> 12346 1 PASSED
> 12346 2 PASSED
> 12346 3 PASSED
> 654321 1 FAILED
> 654321 2 PASSED
> 654321 3 FAILED
> 654321 4 FAILED
> 000123 1 PASSED
>
> So I am trying to write a SQL statement that will return the
> ASMT_CODE, the total number of PASSED for the ASMT_CODE,
> the total number of participants for that ASMT_CODE and finally a
> percent of the PASSED for that particular ASMT_CODE over the number of
> participants for that ASMT_CODE.
> So, if I had the table above I would get something like this:
>
> ASMT_CODE # PASSED TOTAL # % of Total
> 1 3 4 75
> 2 2 3 66.67
> 3 1 3 33.34
> 4 1 2 50
>
> As you notice I am look for the ASMT_CODE base percentage rather than
> the over all percentage. What would be the SQL to do this?
>
> I have tried to write this, but cannot figure out how to calculate the
> last two columns. Here is what I have so far:
> select d1.asmt_code, count(d1.amst_code)
> from test_run d1
> where d1.status = 'PASSED'
> group by d1.asmt_code
> order by d1.asmt_code
> BUT this only yields me the first two columns.
>
> CAN ANYONE HELP?
You can get the first 3 columns with one statement - the fourth column
should be calculated outside the query. Try this:
select d1.asmt_code,
count(case when d1.status = 'PASSED' then 1 else NULL end) as passed,
count(d1.amst_code) as total
from test_run d1
group by d1.asmt_code
order by d1.asmt_code
HTH,
--
Renato
Sao Paulo - SP - Brasil
rdg(at)viafractal(dot)com(dot)br
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2001-05-30 14:15:13 | Re: Problems with new data location |
Previous Message | gee308 | 2001-05-30 13:00:11 | Re: [NOVICE] Things are terribly quiet |
From | Date | Subject | |
---|---|---|---|
Next Message | Renato De Giovanni | 2001-05-30 13:33:50 | Re: Left Joins... |
Previous Message | limlim | 2001-05-30 11:41:24 | sql hard question |