Mailinglisten-Archive |
Hallo Michael, nochmals Danke fuer den Hinweis, es klappt tatsaechlich so. Noch viel besser ist aber der 2. Loesungsvorschlag aus der Doku (Max-Concat-Trick) - sieht zwar nicht sehr elegant aus, ist aber sensationell schnell. Das Problem ist auch das ich im Gegensatz zum Beispiel auf zig Felder gruppieren muss... select router, max(frames_sent), mid(max(concat(lpad(frames_sent,16,'0'),date,time)),11,10) As Date mid(max(concat(lpad(frames_sent,16,'0'),date,time)),22,8) As Time from TableXY group by router: Gruss Oliver > Ich moechte an folgender, beispielhafter Tabelle > > router ; frames_sent ; time_stamp > > zu jedem router die max(frames_sent) *mit* Angabe des dazugehoerigen > time_stamp haben. > ... kann man fast als RTFM Frage bezeichnen. Schau Dir doch mal das untenstehende Beispiel aus dem Handbuch an. 9.3.4 The Rows Holding the Group-wise Maximum of a CertainField For each article, find the dealer(s) with the most expensive price." ... In MySQL it's best do it in several steps: 1. Get the list of (article,maxprice). 2. For each article get the corresponding rows that have the stored maximum price. This can easily be done with a temporary table: CREATE TEMPORARY TABLE tmp ( article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL, price DOUBLE(16,2) DEFAULT '0.00' NOT NULL); LOCK TABLES shop read; INSERT INTO tmp SELECT article, MAX(price) FROM shop GROUP BY article; SELECT shop.article, dealer, price FROM shop, tmp WHERE shop.article=tmp.article AND shop.price=tmp.price; UNLOCK TABLES; DROP TABLE tmp; Gruss, Michael --- *** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql --- *** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive