You may still be able to do this as a single query:

SELECT 
        SUM(if(field1='myvalue',1,0)) as bigTotal, 
        SUM(if(category1 = 'myvalue',1,0)) as categoryTotal, 
        SUM(if(category1 = 
'myvalue',1.0,0))/SUM(if(field1='myvalue',1.0,0)) as CategoryPercent
FROM table

It performs a table scan to calculate your values but it is one way to 
combine your statements into a single query.

Shawn Green
Database Administrator
Unimin Corporation - Spruce Pine


Jacques Jocelyn <[EMAIL PROTECTED]> wrote on 10/08/2004 03:48:26 
AM:

> 
> Hello there,
> 
> Until  I  had  query  time  restriction  due to my web hoster. Meaning
> whenever the query was too long, it gets killed !
> Now I have changed my webhoster, I'd like to optimize my queries and I
> would like to have your opinion on that.
> I  wrote multiple queries to prevent any long query time duration such
> as :
> until now I did the following
> - to obtain the total of item which match requirements
> -> select count(*) 'bigTotal' from table where field1='myvalue'
> 
> then  I  selected  total  of   category from the same table to get the
> percentage of the total
> such as :
> -> select count(*) 'categoryTotal' from table where category1='myvalue'
> and from a script I calculated my percentage = bigToal/categoryTotal
> 
> -> select count(*) 'categoryTotal' from table where category2='myvalue'
> and from a script I calculated my percentage = bigToal/categoryTotal
> etc..
> 
> now, I have planned the following : create ONE query to do all this.
> is there a way then to merge the two previous queries in only one ?
> 
> and calculate the percentage at the same time ?
> To  merge all my category queries, I can use a GROUP BY, but what
> about the bigTotal, can have that in the same query ?
> 
> Please advise.
> Thanks
> 
> 
> Best regards,
> Jacques Jocelyn
> 
> 
> -- 
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]
> 

Reply via email to