エラーが発生しました -
列 '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
この状況は、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
エラーの句部分の説明は何ですか?