Ilja: order by and group by

Beitrag lesen

yo,

also immer den ältesten Eintrag, egal wie ich sortiere.
Was ist mein Denkfehler, oder gibt es wirklich keine Lösung.

ich habe die problematik bereits weiter unten beschrieben. das problem ist das verständnis der klausel group by und was sie bewirkt. group by ist quasi eine sortierung nach einer oder mehreren spalten. --> alle <-- spalten, die nach dem SELECT kommen, sprich die du in der query angezeigt haben willst, müssen auch in der group by klausel mit angeben werden mit der ausnahme von aggregat funktion. das liegt daran, dass durch das group by immer nur ein eindeuter wert durch das dbms zugeordnet werden kann und aggregat-funktionen liefern immer genau einen wert. deshalb bekommst du auch immer nur einen wert als date.

normalerweise geben andere dbms fehlermeldungen, wenn du eine spalte mit ausgeben willst, die nicht groupiert wurde. leider, leider wollten die entwickler von mysql bestimmte sortierungen sich ersparren, wenn zum beispiel die anderen spalten ebenfalls nur einen einzigen wert besitzen, sprich in deinem falle das date immer den gleichen wert hätte. das würde ein performance gewinn bedeuten, weil nur enmal sortiert würde. die fehlende fehlermeldung führt aber zu sehr grosser verwirrung, weil man eben auch spalten mit ausgibt, die mehrere werte haben. und genau dann wundert man sich, warum man nur einen wert bekommt.

Ilja