avg(salary)" Return "ERROR 1111 (HY000): 잘못된 그룹 기능 사용"? " /> avg(salary)" Return "ERROR 1111 (HY000): 잘못된 그룹 함수 사용"? " />
쿼리 "월급 > avg(salary)"는 "ERROR 1111 (HY000): Invalid use of group function"을 반환합니다. 이 문제는 WHERE 절에서 집계 함수를 잘못 사용하여 발생합니다.
이 경우 AVG()와 같은 집계 함수를 사용할 수 없습니다. 특정 조건이 충족되지 않는 한 WHERE 절에서 집계가 HAVING 절 또는 선택 목록이 있는 하위 쿼리에 사용되고 집계 열이 외부 참조인 경우 SQL 표준에 따라 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!