집 >데이터 베이스 >MySQL 튜토리얼 >SQL GROUP BY 쿼리에서 '선택 목록의 열이 잘못되었습니다' 오류를 수정하는 방법은 무엇입니까?
SQL GROUP BY 절의 "선택 목록에서 열이 잘못되었습니다" 오류 수정
GROUP BY
을 사용하는 데이터베이스 쿼리에는 SELECT
목록을 신중하게 고려해야 합니다. 선택한 모든 열은 집계되거나(COUNT
, SUM
, MIN
, MAX
등과 같은 함수 사용) GROUP BY
절에 명시적으로 포함되어야 합니다. 이 규칙을 준수하지 않으면 "열이 집계 함수나 GROUP BY 절에 포함되어 있지 않기 때문에 선택 목록에서 유효하지 않습니다."라는 오류가 발생합니다.
이 오류는 SELECT
목록에 집계되지도 않고 GROUP BY
그룹화의 일부도 아닌 열이 포함된 경우에 발생합니다.
해결 방법은 SELECT
목록 또는 GROUP BY
절을 조정하는 것입니다.
예 및 해결 방법:
이 문제가 있는 쿼리를 살펴보겠습니다.
<code class="language-sql">SELECT loc.LocationID, emp.EmpID FROM Employee AS emp FULL JOIN Location AS loc ON emp.LocationID = loc.LocationID GROUP BY loc.LocationID</code>
emp.EmpID
이 GROUP BY
절에 집계되지도, 포함되지도 않았기 때문에 오류가 발생합니다. 이를 수정하는 두 가지 방법은 다음과 같습니다.
해결책 1: 그룹화되지 않은 열 집계
<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)
)를 계산합니다.
해결책 2: GROUP BY 절에 열 추가
<code class="language-sql">SELECT loc.LocationID, emp.EmpID FROM Employee AS emp FULL JOIN Location AS loc ON emp.LocationID = loc.LocationID GROUP BY loc.LocationID, emp.EmpID</code>
LocationID
및 EmpID
을 기준으로 결과를 그룹화합니다. 이렇게 하면 LocationID
값이 다른 중복 EmpID
항목이 제거됩니다. 결과에는 각 직원의 위치가 개별적으로 표시됩니다.
위 내용은 SQL GROUP BY 쿼리에서 '선택 목록의 열이 잘못되었습니다' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!