Der Spaltengrund ist in der Auswahlliste ungültig, da er weder in einer Aggregatfunktion noch in der GROUP BY-Klausel [duplicate] enthalten ist.

Mögliche Duplikate:
Verwirrung von GROUP BY- / Aggregatfunktionen in SQL

Ich habe einen Fehler bekommen -

Die Spalte 'Employee.EmpID' ist in der Auswahlliste ungültig, da sie weder in einer Aggregatfunktion noch in der GROUP BY-Klausel enthalten ist.

select loc.LocationID, emp.EmpID
from Employee as emp full join Location as loc 
on emp.LocationID = loc.LocationID
group by loc.LocationID 

Diese Situation passt in die Antwort von Bill Karwin.

Korrektur für oben, passt in Antwort von ExactaBox -

select loc.LocationID, count(emp.EmpID) -- not count(*), don't want to count nulls
from Employee as emp full join Location as loc 
on emp.LocationID = loc.LocationID
group by loc.LocationID 

URSPRÜNGLICHE FRAGE -

Für die SQL-Abfrage -

select *
from Employee as emp full join Location as loc 
on emp.LocationID = loc.LocationID
group by (loc.LocationID)

Ich verstehe nicht, warum ich diesen Fehler bekomme. Ich möchte nur die Tabellen verbinden und dann alle Mitarbeiter an einem bestimmten Ort zusammenfassen.

Ich glaube, ich habe eine teilweise Erklärung für meine eigene Frage. Sag mir, ob es in Ordnung ist -

Um alle Mitarbeiter zu gruppieren, die am selben Ort arbeiten, müssen wir zuerst die LocationID erwähnen.

Dann können wir nicht jede Mitarbeiter-ID daneben erwähnen. Wir erwähnen vielmehr die Gesamtzahl der Mitarbeiter an diesem Standort, dh wir sollten die Mitarbeiter, die an diesem Standort arbeiten, mit SUM () angeben. Warum machen wir das so, da bin ich mir nicht sicher. Dies erklärt also den Teil des Fehlers "Es ist weder in einer Aggregatfunktion enthalten".

Was ist die Erklärung für dieGROUP BY Klausel Teil des Fehlers?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage