모두CBT

다음 중 주어진 [Customer] 테이블을 참조하여 아래의 SQL문을… | [컴퓨터활용능력 1급 필기] 20년 2회차 기출문제 상세 페이지

1[컴퓨터활용능력 1급 필기] 20년 2회차
다음 중 주어진 [Customer] 테이블을 참조하여 아래의 SQL문을 실행한 결과로 옳은 것은?

SELECT Count(*)
FROM (SELECT Distinct City From Customer);

Customer

CityAgeHobby
부산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가 붙어 있는지, 집계 함수가 어느 단계에 적용되는지를 구분해 안쪽부터 차례로 따져야 한다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.