Heim >Datenbank >MySQL-Tutorial >Warum löst meine SQL-Abfrage den Fehler „Spalte ist in der Auswahlliste ungültig' im Zusammenhang mit GROUP BY aus?
SQL-Abfragefehler: Spalte ist in der SELECT-Liste ungültig, da sie nicht einer Aggregatfunktion oder GROUP BY-Klausel entspricht
Beim Ausführen einer SQL-Abfrage kann der folgende Fehler auftreten:
<code>Column 'Column_Name' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.</code>
Der Grund für diesen Fehler ist wie folgt:
Datengruppierung
In der Klausel GROUP BY werden Zeilen mit demselben Spaltenwert für die Gruppierung angegeben. Zum Beispiel in der folgenden Abfrage:
<code>SELECT loc.LocationID, emp.EmpID FROM Employee AS emp FULL JOIN Location AS loc ON emp.LocationID = loc.LocationID GROUP BY loc.LocationID</code>
Mitarbeiter werden nach ihrer Standort-ID gruppiert. Wenn Sie jedoch versuchen, eine Spalte in die SELECT-Liste aufzunehmen, die nicht in der GROUP BY-Klausel enthalten ist (z. B. emp.EmpID), erhalten Sie diese Fehlermeldung, da nicht ermittelt werden kann, welche EmpID sein soll für jeden Gruppenwert ausgewählt.
Aggregationsfunktion
Aggregationsfunktionen wie SUM, COUNT, MAX und MIN) können verwendet werden, um zusammenfassende Informationen für gruppierte Daten zu erhalten . Wenn Sie eine nicht aggregierte Spalte in die SELECT-Liste aufnehmen, diese jedoch nicht Teil einer GROUP BY-Klausel ist, müssen Sie eine Aggregatfunktion darauf verwenden.
Wenn Sie beispielsweise die Anzahl der Mitarbeiter pro Standort berechnen möchten, würden Sie Folgendes verwenden:
<code>SELECT loc.LocationID, COUNT(emp.EmpID) FROM Employee AS emp FULL JOIN Location AS loc ON emp.LocationID = loc.LocationID GROUP BY loc.LocationID</code>
Dadurch wird sichergestellt, dass für jeden Standort nur die Anzahl der Mitarbeiter zurückgegeben wird und nicht eine Liste der einzelnen Mitarbeiter-IDs.
Lösung
Um diesen Fehler zu beheben, müssen Sie:
Das obige ist der detaillierte Inhalt vonWarum löst meine SQL-Abfrage den Fehler „Spalte ist in der Auswahlliste ungültig' im Zusammenhang mit GROUP BY aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!