Heim > Datenbank > MySQL-Tutorial > Warum gibt meine SQL-SELECT-Abfrage mit GROUP BY den Fehler „Ungültige Spalte' zurück?

Warum gibt meine SQL-SELECT-Abfrage mit GROUP BY den Fehler „Ungültige Spalte' zurück?

Linda Hamilton
Freigeben: 2025-01-23 01:07:11
Original
935 Leute haben es durchsucht

Why Does My SQL SELECT Query with GROUP BY Return an

SQL GROUP BY Ungültiger Spaltenfehler in der Abfrage

Bei der Auswahl von Spalten in einer SQL-Abfrage, die eine GROUP BY-Klausel enthält, kann ein Fehler auftreten, wenn die Spalte weder in einer Aggregatfunktion noch in der GROUP BY-Klausel enthalten ist. Dieser Fehler sieht normalerweise so aus: „Spalte ‚Employee.EmpID‘ ist in der Auswahlliste ungültig, da sie weder in einer Aggregatfunktion noch in einer GROUP BY-Klausel enthalten ist.“

Der Grund dafür ist die Einwertregel. In GROUP BY-Abfragen muss die Ausgabe für nicht aggregierte Spalten innerhalb jeder Gruppe eindeutig sein. Wenn Sie jedoch eine einzelne Spalte auswählen, ohne sie zu aggregieren, beispielsweise „Employee.EmpID“, führt dies zu mehrdeutigen Ergebnissen.

Um diesen Fehler zu beheben, fügen Sie die Spalte in eine GROUP BY-Klausel ein oder wenden Sie eine Aggregatfunktion darauf an. Wenn Sie beispielsweise die Anzahl der Mitarbeiter pro Standort berechnen möchten, verwenden Sie die folgende Abfrage:

SELECT loc.LocationID, COUNT(emp.EmpID) AS EmployeeCount
FROM Employee AS emp
FULL JOIN Location AS loc
ON emp.LocationID = loc.LocationID
GROUP BY loc.LocationID
Nach dem Login kopieren

Diese Abfrage zählt die Anzahl der Mitarbeiter an jedem Standort und stellt gleichzeitig Standort-IDs für jede Gruppe bereit. Wenn Sie alternativ alle Spalten für jeden Standort auswählen, aber nur die neueste Mitarbeiter-ID (Maximalwert) anzeigen möchten, können Sie die Aggregatfunktion MAX verwenden:

SELECT loc.LocationID, MAX(emp.EmpID) AS LatestEmployeeID
FROM Employee AS emp
FULL JOIN Location AS loc
ON emp.LocationID = loc.LocationID
GROUP BY loc.LocationID
Nach dem Login kopieren

Durch die Verwendung von Aggregatfunktionen oder das Einschließen von Spalten in eine GROUP BY-Klausel können Sie sicherstellen, dass die abgerufenen Daten eindeutig sind und den Einzelwertregeln entsprechen.

Das obige ist der detaillierte Inhalt vonWarum gibt meine SQL-SELECT-Abfrage mit GROUP BY den Fehler „Ungültige Spalte' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage