我得到一个错误
列的员工。EmpID'在选择列表中无效,因为它是无效的 不包含在聚合函数或GROUP BY子句中。
select loc.LocationID, emp.EmpID
from Employee as emp full join Location as loc
on emp.LocationID = loc.LocationID
group by loc.LocationID
这种情况符合Bill Karwin给出的答案。
修正以上,符合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
原来的问题
对于SQL查询-
select *
from Employee as emp full join Location as loc
on emp.LocationID = loc.LocationID
group by (loc.LocationID)
我不明白为什么会得到这个错误。我所要做的就是连接这些表,然后将所有员工分组在一个特定的位置。
对于我自己的问题,我想我有一个部分的解释。告诉我是否可以
为了对在同一位置工作的所有员工进行分组,我们必须首先提到LocationID。
然后,我们不能/不提到它旁边的每个员工ID。相反,我们提到该位置的员工总数,即我们应该SUM()在该位置工作的员工。我不知道为什么我们要用后一种方式。 因此,这就解释了“它不包含在任何一个聚合函数中”这部分错误。
如何解释错误的GROUP BY子句部分?