Good, you recognize the need to perform two separate aggregates (GROUP BYs) and compare the separate results... In fact, you may need two temp tables so that you can (INNER / LEFT) JOIN one to the other. (Yes, I can think of a query that works without the second temp table but I think it's kludgey and would rather not post it.)
To find same name and count CREATE TEMPORARY TABLE tmpCount1 SELECT name, count(1) fq from table1 WHERE (conditions) GROUP BY name; CREATE TEMPORARY TABLE tmpCount2 SELECT name, count(1) fq from table2 WHERE (conditions) GROUP BY name; SELECT t1.name FROM tmpCount1 t1 INNER JOIN tmpCount2 t2 on t1.name = t2.name and t1.fq = t2.fq; DROP TEMPORARY TABLE tmpCount1, tmpCount2; To find where table2 has MORE than table1 SELECT t2.name FROM tmpCount2 t2 INNER JOIN tmpCount1 t1 on t1.name = t2.name WHERE t1.fq < t2.fq; Does this help in a general way? Shawn Green Database Administrator Unimin Corporation - Spruce Pine Laszlo Thoth <[EMAIL PROTECTED]> wrote on 10/12/2004 01:18:39 PM: > Quoting [EMAIL PROTECTED]: > > > > Why would you want to do that? bananacount is something you can > > > calculate with a LEFT JOIN and a GROUP BY, so storing it in the DB > > > would break normalization. > > > > This would also the first step in creating your own OLAP cube. For each > > statistic, you save yourself a lot of time if you compute the results of > > several GROUP BY functions (SUM, AVG, STD, etc) and store those results > > into intermediate tables. Then when you want to start slicing and dicing > > your data, you do more retrieval and less computations. This seriously > > improves the performance of your reports. Each new record inserted into > > your cube would require you to update every computed statistics table that > > covered your new record. But that *is* the trade off, isn't it? Much > > faster analysis for much slower transaction performance. Thus the basic > > difference between OLAP and OLTP. > > This is closer to the reason why I'm trying to do this. Obviously this is an > example: I'm not actually tracking real monkeys and real banannas with mysql. > (Sorry if this disappoints anyone!) In my actual application I'm doing a JOIN > between this table and another one with a GROUP BY (a very differentcriteria) > and a HAVING clause which selects only members from this other tablewhich have > as many elements in this second grouping as appeared in the first grouping. > > So basically I'm trying to compare the results of two different GROUP BY > statements with a HAVING clause and I'm pretty sure I can't do it all within > one statement, so I'm caching the results of one of the GROUPs as a value in > one of the tables. > > -- > MySQL General Mailing List > For list archives: http://lists.mysql.com/mysql > To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED] >