다음 두 쿼리의 결과 차이점을 올바르게 설명한 것은?

과목: MySQL

문제 번호: 3170

hard
다음 두 쿼리의 결과 차이점을 올바르게 설명한 것은?
-- 쿼리 A
SELECT COUNT(CustomerID), Country
FROM Customers
WHERE COUNT(CustomerID) > 5
GROUP BY Country;

-- 쿼리 B
SELECT COUNT(CustomerID), Country  
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5;
A. 쿼리 A와 B는 동일한 결과를 반환합니다
B. 쿼리 A는 실행 오류가 발생하고, 쿼리 B는 정상 실행됩니다
C. 쿼리 A는 정상 실행되고, 쿼리 B는 실행 오류가 발생합니다
D. 두 쿼리 모두 실행 오류가 발생합니다

정답: B



⦁ 쿼리 A의 문제점:
⦁ WHERE 절에서 집계 함수 COUNT(CustomerID)를 사용했습니다
⦁ WHERE 절은 개별 행에 대한 조건만 처리 가능하며, 집계 함수는 사용할 수 없습니다
⦁ 실행 시 "Invalid use of group function" 오류가 발생합니다

⦁ 쿼리 B의 정상성:
⦁ GROUP BY로 먼저 그룹화한 후 HAVING에서 집계 함수 조건을 적용합니다
⦁ 올바른 문법으로 정상 실행되어 고객 수가 5명 초과인 국가들을 반환합니다

⦁ 핵심 원칙: 집계 함수 조건은 반드시 HAVING 절에서 사용해야 합니다

💡 학습 팁

이 문제를 포함한 MySQL 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.