Heim >Datenbank >MySQL-Tutorial >Warum gibt meine SQL-Abfrage den Fehler „Keine Einzelgruppen-Gruppenfunktion' zurück?
SQL-Funktion „keine Einzelgruppen-Gruppenfunktion“ erklärt
In SQL wird bei Verwendung einer Gruppenfunktion wie MAX die Funktion muss auf eine einzelne Datengruppe angewendet werden. Das heißt, wenn Sie den Maximalwert für eine bestimmte Spalte ermitteln möchten, müssen Sie die Daten auch nach dieser Spalte gruppieren.
Wenn Sie jedoch versuchen, eine Gruppenfunktion auf einen Ausdruck anzuwenden, der nicht gruppiert ist, Sie erhalten die Fehlermeldung „Keine Einzelgruppen-Gruppenfunktion“. Angenommen, Sie haben eine Tabelle namens „Downloads“, die eine Spalte für Downloads durch einen Kunden enthält:
SELECT MAX(SUM(TIME)) FROM downloads GROUP BY SSN
Diese Abfrage ist gültig, da die MAX-Funktion auf eine Gruppe von Daten angewendet wird (Downloads nach SSN). . Wenn Sie jedoch versuchen, die SSN-Spalte zur Select-Anweisung hinzuzufügen, gehen Sie wie folgt vor:
SELECT SSN, MAX(SUM(TIME)) FROM downloads GROUP BY SSN
Sie erhalten die Fehlermeldung „Keine Einzelgruppen-Gruppenfunktion“, da die SSN-Spalte nicht in der enthalten ist GROUP BY-Klausel. Dies bedeutet, dass SQL nicht ermitteln kann, zu welcher Datengruppe die SSN-Spalte gehört, und daher die MAX-Funktion nicht darauf anwenden kann.
Um diesen Fehler zu beheben, haben Sie drei Möglichkeiten:
SELECT SSN, MAX(SUM(TIME)) FROM downloads GROUP BY SSN, TIME
Dadurch erhalten Sie die maximale Gesamtzeit, die für jede einzelne SSN heruntergeladen wurde und Zeitkombination.
Das obige ist der detaillierte Inhalt vonWarum gibt meine SQL-Abfrage den Fehler „Keine Einzelgruppen-Gruppenfunktion' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!