On Mon, 2004-05-24 at 11:32, John Nichel wrote:
> Rich Allen wrote:
> > iH
> >
> > this should work
> >
> > test> select * from xt;
> > +----+-------+
> > | id | field |
> > +----+-------+
> > | 1 | 0 |
> > | 2 | 0 |
> > | 3 | 7 |
> > | 4 | 8 |
> > | 5 | 7 |
> > | 6 | 0 |
> > | 7 | 6 |
> > | 8 | 7 |
> > | 9 | 8 |
> > +----+-------+
> > 9 rows in set (0.00 sec)
> >
> > test> select count(distinct(field)) + (select count(*) from xt where
> > field=0) - 1 from xt;
> > +----------------------------------------------------------------------+
> > | count(distinct(field)) + (select count(*) from xt where field=0) - 1 |
> > +----------------------------------------------------------------------+
> > | 6 |
> > +----------------------------------------------------------------------+
> > 1 row in set (0.01 sec)
> > note that i subtract one since i counted a "0" value in the distinct
> > part ...
> >
> > - hcir
>
> That's what I needed. Thanks!
Note that this solution will be off by one if there aren't any zeros in
your data. Try this:
select count(IF(field>0,NULL,1)) +
count(distinct IF(field>0,field,NULL))
from test;
--
. Garth Webb
. [EMAIL PROTECTED]
.
. shoes * éå * schoenen * ëí * chaussures * zapatos
. Schuhe * ÏÎÏÎÏÏÏÎÎ * pattini * é * sapatas * ÐÐÑÐÐÐÐ
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]