집 >데이터 베이스 >MySQL 튜토리얼 >내 SQL 쿼리에서 '열이 집계 또는 그룹 기준 절에 없음' 오류가 발생하는 이유는 무엇입니까?
"Column Not in Aggregate 또는 Group By 절" SQL 오류 문제 해결
이 가이드에서는 일반적인 SQL 오류인 "'Employee.EmpID' 열이 집계 함수나 GROUP BY 절에 포함되어 있지 않기 때문에 선택 목록에서 유효하지 않습니다."에 대해 설명합니다. 이 오류는 SELECT 문에 집계되지도 않고 GROUP BY 절의 일부도 아닌 열이 포함되어 있을 때 발생합니다.
집계 함수 및 GROUP BY 이해
GROUP BY
절은 지정된 열에서 동일한 값을 가진 행을 그룹화합니다. 이러한 그룹의 데이터를 표시하려면 일반적으로 SUM
, COUNT
, AVG
, MIN
또는 MAX
과 같은 집계 함수를 사용합니다. 이 함수는 각 그룹의 요약 값을 계산합니다.
단일 값 규칙
SQL의 단일 값 규칙에 따르면 SELECT 목록의 집계되지 않은 열은 각 그룹 내에서 일관된 단일 값을 가져야 합니다. 집계되지 않은 열에 그룹당 여러 값이 포함된 경우 SQL이 반환할 값을 결정할 수 없으므로 쿼리가 모호해집니다.
오류 해결
위치 ID와 각 위치의 직원 수를 나열하는 것이 목표라고 가정해 보겠습니다. 수정된 쿼리는 COUNT
집계 함수
<code class="language-sql">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;</code>
COUNT(emp.EmpID)
은 LocationID
별로 직원 수를 계산합니다. 이렇게 하면 그룹당 단일 EmployeeCount
값이 보장되어 단일 값 규칙을 충족하고 오류가 제거됩니다. GROUP BY loc.LocationID
절은 결과를 위치별로 그룹화합니다.
위 내용은 내 SQL 쿼리에서 '열이 집계 또는 그룹 기준 절에 없음' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!