>데이터 베이스 >MySQL 튜토리얼 >내 SQL 쿼리에서 '열이 집계 또는 그룹 기준 절에 없음' 오류가 발생하는 이유는 무엇입니까?

내 SQL 쿼리에서 '열이 집계 또는 그룹 기준 절에 없음' 오류가 발생하는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-23 01:26:09345검색

Why Does My SQL Query Produce a

"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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.