> Well, count(*) is not a column, it is a function of a column.
> When it searches, it doesn't know the result of count so you 
> cannot specify 
> it in the where clause.
> 
> This would work, but you have all the records retrieved, not only 
> the ones 
> who have more than 10 in the group:
> 
> select hpnumber,count(*) as counts from Mobile_Ringtone_Manialogs
> where datesent between '2001-09-24' and '2001-10-24'
> and (returncode > 0 and returncode < 10) group by hpnumber order by
> counts DESC
> 
> To do what you want, you would need to do a subquery. That's where 
> PostgresSQL has an advantage over it.
> 
> Right now, you need to do two steps:
> Get all the records with the counts associated to them.
> When processing the data, ignores those having a count under 10.
> 

Usually, when somebody suggests that you need a subquery in a SELECT statement, 
they're just plain wrong.  In my experience, I've never run across a real-world nested 
SELECT that couldn't be expressed a different (and more efficient) way.  For deletes 
and updates, the nested SELECT's are much more useful.

In this case, you need to put your clause "counts > 10" in a HAVING clause.  Try this:

select hpnumber,count(*) as counts from Mobile_Ringtone_Manialogs
where datesent between '2001-09-24' and '2001-10-24' and 
(returncode > 0 and returncode < 10) group by hpnumber HAVING counts > 10 order by 
counts DESC

Steve Meyers



---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to