Heim >Datenbank >MySQL-Tutorial >Warum erzeugt meine SQL-Abfrage den Fehler „Keine Einzelgruppen-Gruppenfunktion'?
Den Fehler „Keine Einzelgruppen-Gruppenfunktion“ in SQL verstehen
In SQL ist eine Einzelgruppen-Gruppenfunktion, wie z MAX(), SUM() oder AVG() wird auf eine Gruppe von Zeilen angewendet, die in den angegebenen Gruppierungsspalten dieselben Werte haben. Wenn Sie jedoch versuchen, einzelne Spaltenausdrücke zusammen mit einer Gruppenfunktion in die SELECT-Liste aufzunehmen und nicht alle dieser Ausdrücke in die GROUP BY-Klausel aufzunehmen, wird der Fehler „Keine Einzelgruppen-Gruppenfunktion“ auftreten.
Erläuterung des Problems
In der von Ihnen bereitgestellten Beispiel-SQL-Anweisung:
SELECT SSN, MAX(SUM(TIME)) FROM downloads GROUP BY SSN
die Abfrage versucht, den Maximalwert der Summe von TIME für jede eindeutige SSN zu berechnen und dann die diesem Maximalwert zugeordnete SSN zurückzugeben. Bei dieser Abfrage gibt es jedoch ein grundlegendes Problem:
Lösung
Um diesen Fehler zu beheben, haben Sie drei Optionen:
Beispielabfrage mit Option 2
SELECT SSN, MAX(SUM(TIME)) FROM downloads GROUP BY SSN, TIME
Diese Abfrage gruppiert die Ergebnisse sowohl nach SSN als auch nach ZEIT, sodass Sie für jede SSN die SSN abrufen können, die der maximalen Summe von ZEIT zugeordnet ist.
Das obige ist der detaillierte Inhalt vonWarum erzeugt meine SQL-Abfrage den Fehler „Keine Einzelgruppen-Gruppenfunktion'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!