Thread: Percentage of Total Occurances

Percentage of Total Occurances

From
Adam Sherman
Date:
I have a table being used for poll results:

id
poll_id
question_id
answer_id
datestamp

I what to figure out the percentage or respondants that gave each answer. 
This is based on occurance rather than values.

I want to be able to figure it out for a single (poll_id,qustion_id) 
combination and also for multiple questions.

Thanks for your help,

A.


--
Adam Sherman
Tritus CG Inc.
http://www.tritus.ca/
+1 (613) 797-6819



Re: Percentage of Total Occurances

From
Date:
> I have a table being used for poll results:
>
> id
> poll_id
> question_id
> answer_id
> datestamp
>
> I what to figure out the percentage or respondants that gave each answer.  This is based on
> occurance rather than values.

select answer_id,count(*) from polls where poll_id = ?
group by answer_id ;

gives number of response of each answer

total_response = select count(*) from polls where poll_id = ?

getting %age shud be trivial.

Dunno if i missed your question .
>
> I want to be able to figure it out for a single (poll_id,qustion_id)  combination and also for
> multiple questions.
>

sorry i do not get it.

> Thanks for your help,
>
> A.
>
>
> --
> Adam Sherman
> Tritus CG Inc.
> http://www.tritus.ca/
> +1 (613) 797-6819
>
>
> ---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9'
> the postmaster



-----------------------------------------
Get your free web based email at trade-india.com.  "India's Leading B2B eMarketplace.!"
http://www.trade-india.com/



Re: Percentage of Total Occurances

From
Adam Sherman
Date:
On 04/15/03 22:40:37 +0530 mallah@trade-india.com wrote:

>> I have a table being used for poll results:
>>
>> id
>> poll_id
>> question_id
>> answer_id
>> datestamp
>>
>> I what to figure out the percentage or respondants that gave each
>> answer.  This is based on occurance rather than values.
>
> select answer_id,count(*) from polls where poll_id = ?
> group by answer_id ;
>
> gives number of response of each answer
>
> total_response = select count(*) from polls where poll_id = ?
>
> getting %age shud be trivial.
>
> Dunno if i missed your question .

I'm looking to do everything in a single query.

And get something like:

answer_id -> percentage

Thanks,

A.

--
Adam Sherman
Tritus CG Inc.
http://www.tritus.ca/
+1 (613) 797-6819



Re: Percentage of Total Occurances

From
Date:

well if everything in a single query is that imp u may do this subselect:
select answer_id ,  1.0*count(*) / (select count(*) from polls where poll_id = ?)     from polls where poll_id = ?
groupby answer_id ; 

and if u need to trim the trailing digits after decimal
do to_char(value , '99.99')

since u have not provided any sample data i cann't test it.




> On 04/15/03 22:40:37 +0530 mallah@trade-india.com wrote:
>
>>> I have a table being used for poll results:
>>>
>>> id
>>> poll_id
>>> question_id
>>> answer_id
>>> datestamp
>>>
>>> I what to figure out the percentage or respondants that gave each answer.  This is based on
>>> occurance rather than values.
>>
>>    select answer_id ,  1.0*count(*) / (select count(*) from polls where poll_id = ?)     from polls where poll_id =
?group by answer_id ; 
>>
>> gives number of response of each answer
>>
>> total_response = select count(*) from polls where poll_id = ?
>>
>> getting %age shud be trivial.
>>
>> Dunno if i missed your question .
>
> I'm looking to do everything in a single query.
>
> And get something like:
>
> answer_id -> percentage
>
> Thanks,
>
> A.
>
> --
> Adam Sherman
> Tritus CG Inc.
> http://www.tritus.ca/
> +1 (613) 797-6819
>
>
> ---------------------------(end of broadcast)--------------------------- TIP 5: Have you
> checked our extensive FAQ?
>
> http://www.postgresql.org/docs/faqs/FAQ.html



-----------------------------------------
Get your free web based email at trade-india.com.  "India's Leading B2B eMarketplace.!"
http://www.trade-india.com/



Re: Percentage of Total Occurances

From
Adam Sherman
Date:
On 04/16/03 01:11:08 +0530 mallah@trade-india.com wrote:

>
>
> well if everything in a single query is that imp u may do this subselect:
>
>  select answer_id ,  1.0*count(*) / (select count(*) from polls where
> poll_id = ?)       from polls where poll_id = ? group by answer_id ;
>
> and if u need to trim the trailing digits after decimal
> do to_char(value , '99.99')
>
> since u have not provided any sample data i cann't test it.


Thanks for your help, this was simpler than I thought.

A.


--
Adam Sherman
Tritus CG Inc.
http://www.tritus.ca/
+1 (613) 797-6819