학습용 기출·복원자료 분류 확인SQLD · 2023년 49회 SQL 기본 및 활용 · 18번
사원의 관리자 연봉이 3,000 이하인 행을 찾는 조건으로 적절하지 않은 것은?
1
사원과 관리자를 셀프 조인하고 관리자 연봉 <= 3000을 적용한다.
오답 이유관리자 행이 실제로 존재하고 그 연봉이 기준 이하인 경우만 남으므로 요구사항에 맞다. 따라서 1번 보기 ‘사원과 관리자를 셀프 조인하고 관리자 연봉 <= 3000을 적용한다.’의 적용 여부를 문제 조건과 대조해야 한다.
2
관리자 번호로 상관 서브쿼리를 연결하고 관리자 연봉 <= 3000을 검사한다.
오답 이유상관 조건과 연봉 조건을 함께 두면 해당 관리자 행의 기준 충족을 확인할 수 있다. 따라서 2번 보기 ‘관리자 번호로 상관 서브쿼리를 연결하고 관리자 연봉 <= 3000을 검사한다.’의 적용 여부를 문제 조건과 대조해야 한다.
3
관리자 연봉이 3,000을 초과하는 행이 존재하지 않는지만 검사하고 관리자 존재 여부를 따로 확인하지 않는 NOT EXISTS 조건
정답 근거관리자가 없는 사원은 대응 행 자체가 없어 '3,000 초과 관리자가 존재하지 않는다'가 참이 될 수 있다. 관리자 연봉 3,000 이하인 사원만 요구한다면 관리자 존재와 연봉 조건을 함께 보장해야 한다. 따라서 3번 보기 ‘관리자 연봉이 3,000을 초과하는 행이 존재하지 않는지만 검사하고 관리자 존재 여부를 따로 확인하지 않는 NOT EXISTS 조건’의 적용 여부를 문제 조건과 대조해야 한다.
4
EXISTS로 관리자 행의 존재와 관리자 연봉 <= 3000을 동시에 검사한다.
오답 이유존재 검사가 연봉 조건과 같은 서브쿼리에 있으므로 관리자가 없는 사원은 제외된다. 따라서 4번 보기 ‘EXISTS로 관리자 행의 존재와 관리자 연봉 <= 3000을 동시에 검사한다.’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 3번
핵심 판단은 3번 ‘관리자 연봉이 3,000을 초과하는 행이 존재하지 않는지만 검사하고 관리자 존재 여부를 따로 확인하지 않는 NOT EXISTS 조건’입니다. 관리자가 없는 사원은 대응 행 자체가 없어 '3,000 초과 관리자가 존재하지 않는다'가 참이 될 수 있다. 관리자 연봉 3,000 이하인 사원만 요구한다면 관리자 존재와 연봉 조건을 함께 보장해야 한다.