Sven Rautenberg: Aggregatsfunktionen, group by, unvorhersagbare Ergebnisse

Beitrag lesen

Moin!

MySQL erlaubt dir unsinnigerweise, dass du im SELECT auch Spalten angeben darfst, die weder die Aggregatfunktionen (MIN, MAX, COUNT, SUM,...) nutzen, noch bei GROUP BY aufgelistet sind.

mysql erlaubt es nicht, wenn sich die werte der entsprechenden spalte unterscheiden, was hier der fall sein sollte.

Doch! Ist in der Doku auch beschrieben, in welchen Fällen man dieses Feature (aus Geschwindigkeitsgründen) nutzen soll: Wenn sich die zusammengruppierten Spalten nicht unterscheiden, andernfalls wird ein zufälliges Ergebnis produziert.

nur gibt das dbms keine fehlmerldung aus. das wirft die frage aus, gibt es einen syntaktischen fehler ohne fehlermeldung ? bei mysql ist es ganz offensichtlich so.

Ein Fehler ist, wenn etwas nicht wie beschrieben funktioniert. Bei MySQL funktioniert das selektieren nicht gruppierter Spalten wie beschrieben, also ist das kein Fehler. Die Erwartungshaltung des Nutzers paßt nur meist nicht zum produzierten Ergebnis - also ist die Erwartungshaltung fehlerhaft.

Aber das kann man ja mit einem Update der Erwartungshaltung korrigieren.

- Sven Rautenberg

--
"Love your nation - respect the others."