Ilja: MAX-Wert einer Spalte mit restlichen Daten der Zeile auslesen

Beitrag lesen

yo,

Ich versuche das mit der Abfrage "SELECT MAX(a), c FROM tabelle GROUP BY b". Die liefert als Ergebnis aber

Ein anständiges Datenbankmanagementsystems meckert bei einer solchen Abfrage. MySQL ist da meiner Ansicht nach zu großzügig.

mysql ist da genauso wenig großzügig wie andere dbms, außer dass es keine fehlermeldung ausgibt. aber nicht gruppierte und nicht aggregierte spalten mit in die select-ausgabe mit einzubeziehen geht auch bei mysql nur, wenn alle werte in der entsprechenden spalte der jeweiligen gruppierung gleich sind. mysql versucht damit eine weitere sortierung zu sparen. dass verwirrt aber mehr als es letztlich hilft.

Aha, Du verwendest MySQL. Das ist keine gute Nachricht.
MySQL unterstützt Views erst in [http://dev.mysql.com/doc/mysql/en/views.html@title=Version 5.0]. Welche Version steht Dir zur Verfügung. Immer angeben!

views sind auch nicht unbedingt erforderlich, sondern man kann es mit korrelierenden unterabfragen lösen. die frage ist, ob seine version diese schon unterstützen, was ab 4.1 der fall sein sollte, bin mir da aber nicht ganz sicher.

SELECT t1.a, t1.b, t.2c
FROM tabelle AS t1
WHERE t.1a = (SELECT MAX(a) FROM tabelle AS t2 WHERE t1.b=t2.b)

Ilja