본문 바로가기
MySql

MySQL "WHERE에서 집계 함수를 사용할 수 없습니다"오류를 방지하는 방법

by 베이스 공부 2020. 12. 14.
반응형

이 SQL 코드는

WHERE에서는 집계 함수를 사용할 수 없습니다.

SELECT o.ID ,  count(p.CAT)
FROM Orders o
INNER JOIN Products p ON o.P_ID = p.P_ID 
WHERE count(p.CAT) > 3
GROUP BY o.ID;

이 오류를 어떻게 피할 수 있습니까?

 

해결 방법

 

다음과 같이 WHERE 절을 HAVING 으로 바꿉니다.

SELECT o.ID ,  count(p.CAT)
FROM Orders o
INNER JOIN Products p ON o.P_ID = p.P_ID 
GROUP BY o.ID
HAVING count(p.CAT) > 3;

HAVING WHERE 와 유사합니다. 둘 다 결과 레코드를 필터링하는 데 사용되지만 HAVING 은 집계 된 데이터를 필터링하는 데 사용됩니다 ( GROUP BY 가 사용됨).

 

참조 페이지 https://stackoverflow.com/questions/20991729

 

 

반응형

댓글