我有一个错误 -
列 'Employee.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
这种情况符合比尔·卡尔文给出的答案。
上面的更正,适合 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
错误的条款部分的解释是什么?