서브쿼리·연습 문제

개발과 영업에 모두 있는 직급

문제 설명PROBLEM

모든 대상에 존재하는 값 찾기

'모든 대상에서 조건을 만족'은 조건을 만족하지 않는 대상이 존재하지 않는다로 바꾸어 표현할 수 있습니다. 이중 NOT EXISTS를 사용하는 관계 나눗셈 패턴입니다.

과제

개발 부서와 영업 부서에 모두 한 명 이상 존재하는 직급을 조회하세요. 부서번호를 직접 사용하지 말고 부서명 IN ('개발', '영업')으로 대상 부서를 정하며, 반드시 이중 NOT EXISTS를 사용하세요.


📋 사용 데이터

부서 테이블

부서번호부서명지역
10경영서울
20개발판교
30영업부산
40인사대전

사원 테이블 — 수당이 없는 사원은 NULL, 부서 미배정 사원은 부서번호NULL

사원번호이름직급부서번호급여수당입사일
1김철수부장105000NULL2018-03-01
2이영희과장204000NULL2019-06-15
3박민수대리203000NULL2020-01-10
4최지우사원2025005002021-09-01
5정해인과장3038003002019-11-20
6한가인대리302800NULL2020-07-07
7오세훈사원3022004002022-02-14
8신동엽부장105200NULL2017-05-05
9김보검사원NULL2400NULL2023-01-05

결과의 컬럼 이름은 채점하지 않습니다. 값과 행·열의 모양만 맞으면 정답이에요.

SQL 문법 노트와 실수 포인트

서브쿼리

  • 괄호 안 SELECT 결과를 바깥에서 사용.
  • 단일 값이면 = (...), 여러 값이면 IN (...).
  • 집계함수는 WHERE 에 직접 못 쓰지만 서브쿼리로 감싸면 가능: WHERE 급여 > (SELECT AVG(급여) ...).