다음 중 주어진 [Customer] 테이블을 참조하여 아래의 SQL문을… | [컴퓨터활용능력 1급 필기] 20년 2회차 기출문제 상세 페이지
1[컴퓨터활용능력 1급 필기] 20년 2회차
다음 중 주어진 [Customer] 테이블을 참조하여 아래의 SQL문을 실행한 결과로 옳은 것은?SELECT Count(*)
FROM (SELECT Distinct City From Customer);Customer
| City | Age | Hobby |
|---|---|---|
| 부산 | 30 | 축구 |
| 서울 | 26 | 영화감상 |
| 부산 | 45 | 낚시 |
| 서울 | 25 | 야구 |
| 대전 | 21 | 축구 |
| 서울 | 19 | 음악감상 |
| 광주 | 19 | 여행 |
| 서울 | 38 | 야구 |
| 인천 | 53 | 배구 |
1
3
2
5
3
7
4
9
해설
안쪽 쿼리 SELECT Distinct City From Customer는 City 필드에서 중복을 제거한 결과 집합을 만든다. Customer 테이블의 City 값은 부산·서울·부산·서울·대전·서울·광주·서울·인천으로 모두 9건이지만, 중복을 없애면 부산, 서울, 대전, 광주, 인천의 5건만 남는다.
바깥 쿼리는 이 결과를 원본으로 삼아 Count(*)로 행의 개수를 세므로 최종 결과는 5가 된다.
Distinct 없이 Count(*)만 구하면 전체 레코드 수인 9가 나온다. 하위 쿼리에 Distinct가 붙어 있는지, 집계 함수가 어느 단계에 적용되는지를 구분해 안쪽부터 차례로 따져야 한다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.