SQL에서 집계 함수와 함께 WHERE 대신에 USED를 사용하는 방법은 무엇인가요?


SQL에서 WHERE 절은 특정 조건을 충족하는 행만 반환하는 데 사용됩니다. 그러나 집계 함수와 함께 WHERE 절을 사용하면 예상한 결과를 얻을 수 없습니다. 이 때, WHERE 대신에 USED를 사용하여 집계 함수를 필터링할 수 있습니다.

예를 들어, 다음과 같은 Sales 테이블이 있다고 가정해 봅시다.

Product Sales
A 100
B 200
C 150
D 50

이제, Sales 테이블에서 Sales가 100 이상인 제품의 평균 판매량을 계산하려면 다음과 같은 쿼리를 작성할 수 있습니다.

SELECT AVG(Sales) FROM Sales WHERE Sales >= 100;

하지만 이 쿼리는 원하는 결과를 반환하지 않습니다. 대신, USED를 사용하여 다음과 같이 작성해야 합니다.

SELECT AVG(Sales) FROM Sales HAVING AVG(Sales) >= 100;

이 쿼리는 Sales가 100 이상인 제품의 평균 판매량을 반환합니다. HAVING 절은 집계 함수의 결과를 필터링하는 데 사용됩니다. 따라서, WHERE 대신에 USED를 사용하여 집계 함수를 필터링할 수 있습니다.



About the author

William Pham is the Admin and primary author of Howto-Code.com. With over 10 years of experience in programming. William Pham is fluent in several programming languages, including Python, PHP, JavaScript, Java, C++.