SQL - 문제 미리보기
문제 1685
medium
다음 두 쿼리의 차이점을 올바르게 설명한 것은?
쿼리 A:
```sql
SELECT COUNT(*), Country FROM Customers
WHERE Country = 'Germany'
GROUP BY Country;
```
쿼리 B:
```sql
SELECT COUNT(*), Country FROM Customers
GROUP BY Country
HAVING Country = 'Germany';
```
정답: D
WHERE와 HAVING의 성능 차이와 결과 비교:
쿼리 A 실행 과정:
1. WHERE로 독일 고객만 먼저 필터링
2. 필터링된 소수의 행으로 GROUP BY 실행
3. COUNT(*) 계산
쿼리 B 실행 과정:
1. 모든 고객 데이터로 GROUP BY 실행 (모든 국가별 그룹 생성)
2. 각 그룹별로 COUNT(*) 계산
3. HAVING으로 독일 그룹만 필터링
성능 차이 분석:
• 쿼리 A: 처리할 데이터량이 적음 → 빠름
• 쿼리 B: 모든 데이터를 그룹화한 후 필터링 → 느림
결과 비교:
• 두 쿼리 모두 독일의 고객 수만 반환
• 최종 결과는 동일함
실무 권장사항:
• 가능하면 WHERE를 사용하여 미리 필터링
• HAVING은 집계 함수 조건이 필요할 때만 사용
💡 학습 팁
이 문제를 포함한 SQL 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.