What query suppose to be faster? Jan or Dave?

Jan Solution:
SELECT
date,
SUM(IF(CONCAT(status,id) LIKE 'received%',1,0)) as received,
SUM(IF(CONCAT(status,id) LIKE 'send%',1,0)) as send,
SUM(IF(CONCAT(status,id) LIKE 'cancelled%',1,0)) as cancelled
FROM
account
GROUP BY date;


On Wed, 12 Jan 2005 22:51:00 -0500, Dave Merrill <[EMAIL PROTECTED]> wrote:
> > I have table account (see below). I need to get count of received,
> > count of send and cound of cancelled records. I know that I can do
> > this in 3 queries.
> > #1. select count(*) from account where status='received';
> > #2. select count(*) from account where status='send';
> > #3. select count(*) from account where status='cancelled';
> >
> > Is it possible to get count of each status in one query instead of 3?
> 
> How about this:
> 
> select
>   (select count(*) from account where status = 'received') as
> count_received,
>   (select count(*) from account where status = 'send') as count_send,
>   (select count(*) from account where status = 'cancelled') as
> count_cancelled
> 
> You could also build a stored proc that looped over a list of the values to
> find, or, I think maybe, over the actual distinct values in the field. Not
> so sure about that part.
> 
> Dave Merrill
> 
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]
> 
>

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to