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를 사용하여 집계 함수를 필터링할 수 있습니다.