다음 중 [회원] 테이블에 대한 다음 SQL문을 수행했을 때 출력 결과… | [컴퓨터활용능력 1급 필기] 11년 3회차 기출문제 상세 페이지
1[컴퓨터활용능력 1급 필기] 11년 3회차
다음 중 [회원] 테이블에 대한 다음 SQL문을 수행했을 때 출력 결과로 옳은 것은? (단, 성명 필드는 빈문자열 허용이 예로 지정되어있으며 필드 값이로 표시된 것은 문자열이 아닌 인 상태를 의미한다.)
SELECT DISTINCT COUNT(성명)
FROM 회원;
[회원] 테이블
회원번호 성명 1 이 2 김 3 4 이
1
4
2
3
3
2
4
1
해설
[회원] 테이블에는 회원번호 1~4에 성명이 각각 '이', '김', <null>, '이'로 들어 있다.
집계 함수 COUNT에 특정 필드를 인수로 주면 그 필드가 <null>인 행은 세지 않는다. 따라서 성명이 비어 있는 세 번째 행이 빠지고 '이', '김', '이' 세 건만 집계되어 결과는 3이 된다. 같은 값 '이'가 두 번 있어도 COUNT는 중복을 제거하지 않으므로 2로 줄어들지 않는다.
앞에 붙은 DISTINCT는 출력되는 결과 행의 중복을 없애는 것인데, 집계 결과는 한 행뿐이라 값에 아무 영향을 주지 않는다. 참고로 COUNT(*)를 썼다면 <null>인 행까지 포함해 4가 되고, 성명이 빈 문자열("")이었다면 그것은 값이 있는 것으로 취급되어 집계에 포함된다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.