> 데이터 베이스 > MySQL 튜토리얼 > '급여 > 평균(급여)인 직원에서 선택*'이 'ERROR 1111(HY000): 잘못된 그룹 기능 사용'을 반환하는 이유는 무엇입니까?

'급여 > 평균(급여)인 직원에서 선택*'이 'ERROR 1111(HY000): 잘못된 그룹 기능 사용'을 반환하는 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-24 07:47:36
원래의
259명이 탐색했습니다.

Why Does avg(salary)" Return "ERROR 1111 (HY000): 잘못된 그룹 기능 사용"? " /> avg(salary)" Return "ERROR 1111 (HY000): 잘못된 그룹 함수 사용"? " />

문제 해결 "ERROR 1111 (HY000): 잘못된 그룹 기능 사용"

쿼리 "월급 > avg(salary)"는 "ERROR 1111 (HY000): Invalid use of group function"을 반환합니다. 이 문제는 WHERE 절에서 집계 함수를 잘못 사용하여 발생합니다.

오류 해결< ;/h3>

이 경우 AVG()와 같은 집계 함수를 사용할 수 없습니다. 특정 조건이 충족되지 않는 한 WHERE 절에서 집계가 HAVING 절 또는 선택 목록이 있는 하위 쿼리에 사용되고 집계 열이 외부 참조인 경우 SQL 표준에 따라 WHERE 절에 나타날 수 있습니다.

WHERE 절 하위 쿼리 사용

오류를 해결하려면 다시 작성하세요. WHERE 절에 하위 쿼리를 사용한 쿼리:

select *
from staff
where salary > (select avg(salary) from staff)
로그인 후 복사

이 쿼리는 하위 쿼리를 사용하여 평균 급여를 계산한 다음 이를 각 직원의 급여와 비교합니다.

< h4>HAVING 절 사용

또는 집계 데이터를 필터링하는 HAVING 절:

select deptid,COUNT(*) as TotalCount
from staff
group by deptid
having count(*) > 2
로그인 후 복사

이 쿼리의 HAVING 절은 직원이 2명 이상인 부서로 결과를 제한합니다.

위 내용은 '급여 > 평균(급여)인 직원에서 선택*'이 'ERROR 1111(HY000): 잘못된 그룹 기능 사용'을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿