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'; ```
A. 쿼리 A가 더 빠르고 결과도 동일하다
B. 쿼리 B가 더 빠르고 결과도 동일하다
C. 두 쿼리의 속도와 결과가 모두 동일하다
D. 결과는 동일하지만 쿼리 A가 더 효율적이다

정답: D

WHERE와 HAVING의 성능 차이와 결과 비교: 쿼리 A 실행 과정: 1. WHERE로 독일 고객만 먼저 필터링 2. 필터링된 소수의 행으로 GROUP BY 실행 3. COUNT(*) 계산 쿼리 B 실행 과정: 1. 모든 고객 데이터로 GROUP BY 실행 (모든 국가별 그룹 생성) 2. 각 그룹별로 COUNT(*) 계산 3. HAVING으로 독일 그룹만 필터링 성능 차이 분석: • 쿼리 A: 처리할 데이터량이 적음 → 빠름 • 쿼리 B: 모든 데이터를 그룹화한 후 필터링 → 느림 결과 비교: • 두 쿼리 모두 독일의 고객 수만 반환 • 최종 결과는 동일함 실무 권장사항: • 가능하면 WHERE를 사용하여 미리 필터링 • HAVING은 집계 함수 조건이 필요할 때만 사용

💡 학습 팁

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