Sie müssen alle Spalten des SELECT
setzen im Feld GROUP BY
oder verwenden Sie Funktionen, die die Ergebnisse auf einen einzigen Wert komprimieren (wie MIN
, MAX
oder SUM
).
Ein einfaches Beispiel, um zu verstehen, warum das passiert:Stellen Sie sich vor, Sie haben eine Datenbank wie diese:
FOO BAR
0 A
0 B
und Sie führen SELECT * FROM table GROUP BY foo
aus . Das bedeutet, dass die Datenbank als Ergebnis eine einzelne Zeile mit der ersten Spalte 0
zurückgeben muss um den GROUP BY
zu erfüllen aber es gibt jetzt zwei Werte von bar
zur Auswahl. Welches Ergebnis würden Sie erwarten - A
oder B
? Oder sollte die Datenbank mehr als eine Zeile zurückgeben und damit gegen den Vertrag von GROUP BY
verstoßen ?