SQLD(SQL 개발자) 기출 · 집계 함수
다음과 같은 문장으로 사원 테이블을 생성하였을 때, 사원 테이블에 유효한 데이터를 로드한 후, 아래 두 SQL문을 성공적으로 실행하였다. SQL A와 SQL B의 실행 결과로 옳은 것은?
본문)
create table 사원(번호 char(10) primary key, 월급 integer);
SQL A : select count(번호) from 사원 where 월급 > = 100000 or 월급 < 100000;
SQL B : select count(번호) from 사원;이 문제 풀어보기
정답 및 해설 보기
정답: 2번
count()는 행 수를 계산하는 집계함수이다. 집계함수의 특성은 NULL 값을 제외한다는 것이다. 그래서 NULL 값이 존재하는 경우 집계 결과는 달라질 수 있다. 번호 칼럼은 PK이므로 값이 무조건 들어있다. 즉, COUNT(번호)는 모든 행의 개수를 출력한다. 반면에 월급 칼럼에 NULL이 들어있을 경우에는 WHERE 월급>=100000 OR 월급<100000 이 부분에서 NULL은 정상적인 비교가 되지않아 행이 조회되지 않는다. 즉 출력되는 행의 개수가 달라질 수 있다는 의미이다.