문제
아래 [회원] 테이블을 참조하여 다음 SQL문을 실행한 결과로 옳은 것은?
| 지역 | 나이 | 등급 |
|---|---|---|
| 대구 | 28 | 일반 |
| 서울 | 35 | 우수 |
| 인천 | 41 | 일반 |
| 대구 | 22 | 우수 |
| 부산 | 30 | 일반 |
| 서울 | 26 | 우수 |
| 인천 | 38 | 일반 |
| 대구 | 45 | 우수 |
① 3 ② 4 ③ 7 ④ 8
정답
2번
해설
정답: 2. 안쪽 쿼리 SELECT DISTINCT 지역은 중복을 제거한 지역(대구·서울·인천·부산) 4개를 반환하고, 바깥쪽 COUNT(*)가 그 행 수인 4를 센다.
오답 풀이
- 1번: 서로 다른 지역은 4개이므로 3은 옳지 않다.
- 2번: DISTINCT 지역은 대구·서울·인천·부산 4개이므로 옳다.
- 3번: 7은 전체 행 수에서 하나 뺀 값으로 의미가 없다.
- 4번: 8은 중복을 제거하지 않은 전체 레코드 수이다.
보충 개념 DISTINCT는 중복을 제거하므로, 그 결과에 COUNT(*)를 적용하면 서로 다른 값의 개수를 구할 수 있다.