Right, subqueries require 4.1. In 4.0.17, you could do this with 2 queries
and a temporary table:
CREATE TEMPORARY TABLE owners_temp SELECT COUNT(*) as c
FROM pet GROUP BY owner HAVING c>1;
SELECT COUNT(*) FROM owners_temp;
DROP TABLE owners_temp;
There may be a better way, but that should work.
Michael
Dave Torr wrote:
Thanks - this did not work for me as I am on 4.0.17 - presumably this
works on 4.1 (seems to need the SubQuery feature)? If so I will upgrade
immediately!
From: Yayati Kasralikar <[EMAIL PROTECTED]>
To: Dave Torr <[EMAIL PROTECTED]>
CC: [EMAIL PROTECTED]
Subject: Re: How to COUNT rows when they have a COUNT in them
Date: Mon, 14 Jun 2004 23:37:15 -0400
Following query does what you want:
SELECT COUNT(*) from (SELECT COUNT(*) as c FROM pet GROUP BY owner
HAVING c>1) as temp
-Yayati
Dave Torr wrote:
Probably simple but I can't figure it out!
THe manual section 3.3.4.8 has the example
SELECT owner, COUNT(*) FROM pet GROUP BY owner
which is fine. Now what I want to do is count the number of rows this
returns. Actually of course this is trivial - I can just count how
many owners there are.
What I actually have is something similar to
SELECT owner, COUNT(*) as c FROM pet GROUP BY owner HAVING c>1
(ie I want to see the owners who have more than one pet). And I just
want to know how many there are - at the moment I am having to
retreive the full data set (which is large in my case).
What I want is something like
SELECT COUNT(SELECT owner, COUNT(*) FROM pet GROUP BY owner HAVING c>1)
but that doesn't work....
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]