Ilja: zusätzliche Daten bei GROUP BY abfragen

Beitrag lesen

yo,

Ich komme immer wieder in die Situation, dass ich per "GROUP BY" z.B. einen maximalen Wert in einer Spalte auslese, dann aber auch gerne gleichzeitig den zugehörigen Schlüssel (ID) auslesen würde, was leider nicht geht wenn die ID nicht hinter GROUP BY aufgelistet ist.

GROUP BY hat erst mal nichts mit einem maximalen wert auslesen zu tun, sondern unterteilt eine abfrage in mehrere gruppen. du meinst sicherlich aus der gruppe den jeweils höchsten wert und die zugehörige id auslesen ;-)

da gibt es schon wege, dies zu erreichen, auch ohne den weg von mysql über russisch roulette zu gehen. du musst den kern von aussen angehen, sprich erstmal die ausgabespalten nehmen. dann gehst du ins innere der unterabfrage.

SELECT tab1.id, tab1.preis, tab1.warengruppe
FROM tabelle as tab1
WHERE tab1.preis =
   (SELECT MAX(tab2.preis) FROM tabelle as tab2 WHERE tab2.warengruppe=tab1.warengruppe)

Ilja