MySQL größten Wert innerhalb von Gruppe darstellen

Thomas Darimont

Erfahrenes Mitglied
Hallo!

Hier mal ein Beispiel wie man unter MySQL den größten Wert einer Gruppe anzeigen kann:
Bsp.:
Code:
 mysql> select * from foo;
 +------+----------+-------+
 | id   | other_id | title |
 +------+----------+-------+
 |	1 |		1 | A	 |
 |	2 |		1 | B	 |
 |	3 |		1 | C	 |
 |	4 |		2 | D	 |
 +------+----------+-------+
 4 rows in set (0.00 sec)

Unsere Abfrage:
Code:
   select a.id,a.title from foo a LEFT JOIN foo b ON a.other_id = b.other_id AND a.id < b.id WHERE b.id IS NULL;

Ergibt:
Code:
 +------+-------+
 | id   | title |
 +------+-------+
 |	3 | C	 |
 |	4 | D	 |
 +------+-------+
 2 rows in set (0.00 sec)

Funktioniert auch mit MySQL Version < 4.1 :)

Gruß Tom
 
Das Query gefällt mir.
Das ist dann wohl die elegante Art zu Datics Problem vom Mai.

Gruß hpvw

PS: Ich sehe wieder zunehmend mehr Beiträge von Dir. Bist Du jetzt fertig, mit Deiner Diplomarbeit?
 
Soeben trat in einem anderen Thread das Problem auf, dass bei dieser Art Query auch die Datensätze in der Gruppe gezählt werden sollten. Ein weiterer JOIN löst das Problem, wenn man sich die Anzahl der Datensätze noch zurecht rechnet.
Die Lösung habe ich in dem anderen Thread gepostet.

Gruß hpvw
 

Neue Beiträge

Zurück