select min(x), max(x), avg(x), y, z from q group by y
aus welcher Zeile soll jetzt das z genommen werden? Aus einer mit dem minimalen x, aus einer mit dem maximalen x, oder gar aus einer mit dem durchschnittlichen x (die gibt es ggf. gar nicht ...)
Was ich meine ist eine andere Vorgehensweise als das klassische GROUP BY. Etwas das eine Zeile so liefert wie sie auch wirklich in der Tabelle steht.
Beispiel: SELECT x, y, z FROM Tabelle GROUP BY x NIMM_NUR_DIE_ZEILE_IN_DER_GILT z ist MAX
Es werden alle Zeilen nach x zusammengefasst. Dann wird x, y, z aus der Zeile ausgegeben in der z maximal ist.
Das wäre das was der Fragesteller auch will. Unter allen gleichen Kundennummern jeweils die Zeile suchen die das jüngste Datum hat.
Und wenn der minimale Wert mehrfach vorkommt? Aus welcher der gefundenen Zeilen sollen dann die Zusatz-Spalten kommen?
Aus irgendeiner. Zu entscheiden ob sowas möglich ist wäre Sache des Programmierers.