SQL - 문제 미리보기
문제 1653
hard
다음 상황에서 가장 적절한 쿼리는?
상황: 모든 고객의 목록을 출력하되, 2024년에 주문한 고객은 주문 횟수를, 주문하지 않은 고객은 0으로 표시하고 싶습니다.
상황: 모든 고객의 목록을 출력하되, 2024년에 주문한 고객은 주문 횟수를, 주문하지 않은 고객은 0으로 표시하고 싶습니다.
정답: C
요구사항 분석:
• 모든 고객 포함: LEFT JOIN 필요
• 2024년 조건: 조인 조건에 포함해야 함
• 0 표시: 주문 없는 고객도 결과에 포함
선택지별 분석:
선택지 1 (INNER JOIN + WHERE):
```sql
-- 문제점: 2024년 주문한 고객만 나타남
-- 결과: 주문 없는 고객 제외됨
```
선택지 2 (LEFT JOIN + WHERE):
```sql
-- 문제점: WHERE 절이 LEFT JOIN 효과를 상쇄
-- 동작: LEFT JOIN 후 WHERE로 필터링 → INNER JOIN과 유사한 결과
-- 결과: 주문 없는 고객 제외됨
```
선택지 3 (LEFT JOIN + 조인 조건) - 정답:
```sql
-- 올바른 방법: 조건을 조인 조건에 포함
-- 동작: 2024년 주문만 매칭, 없으면 NULL
-- 결과: 모든 고객 포함, 주문 없으면 COUNT = 0
```
선택지 4 (연도 조건 없음):
```sql
-- 문제점: 2024년 조건이 없음
-- 결과: 모든 연도 주문 포함
```
💡 학습 팁
이 문제를 포함한 SQL 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.