ChrisB: GROUP BY und nicht aggregierte Spalten

Beitrag lesen

Hi,

als ergänzung, wenn ich mich richtig an die dokumentation erinnere, so erlaubt auch mysql es nicht, grundsätlich jede x-beliebige spalte bei der verwendung von GROUP BY mit auszugeben, sondern eben nur die spalten, die innerhalb der gruppierung eindeutig sind.

Was meinst du hier mit eindeutig?

„MySQL extends the use of GROUP BY to allow selecting fields that are not mentioned in the GROUP BY clause.”
[http://dev.mysql.com/doc/refman/5.1/en/select.html]

der hintergrund dafür ist performance, sprich man verspricht sich einen zeitgewinn, indem man nicht noch zusätzlich über spalten gruppiert, wenn die eindeutigkeit schon durch andere spalten gegeben ist. das dbms muss nämlich über jede spalte in der group by klausel sortieren. je mehr spalten dort angegeben werden, desto mehr sortierarbeit.

Mit Performance meinst du hier Performance beim *Schreiben* von Queries, in dem man auf Gruppierungen verzichtet?
Wenn man damit leben kann, für solche Spalten wie von Vinzenz erwähnt einen „zufälligen“ Wert zu erhalten, dann kann man das machen.

also, nicht glauben man kann bei mysql jede beliebige spalte mit ausgeben, nur weil es keine fehlermeldung gibt, das ist nämlich falsch.

Wie soll sich denn sonst „nicht können“ äussern, wenn nicht mit einer Fehlermeldung?

Man kann die Spalten angeben, die man angeben will - und erhält ein Ergebnis.

MfG ChrisB

--
“Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]