Oracle
 sql >> Datenbank >  >> RDS >> Oracle

ORA-00979 kein Gruppieren-nach-Ausdruck

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 ?