SQLD 기출문제 예상문제 23

다음 문제를 풀어보세요.

다음은 조직도 정보를 담고 있는 `EMPLOYEES` 테이블에 대한 설명이다. 특정 부서에 속한 모든 직원의 급여 총합을 계산하는 쿼리를 작성하려고 한다. 단, 해당 부서의 상위 부서에 속한 직원의 급여는 포함하지 않아야 한다. 아래 쿼리의 빈칸에 들어갈 가장 적절한 코드를 고르시오.

-- EMPLOYEES 테이블 구조
CREATE TABLE EMPLOYEES (
    EMPLOYEE_ID NUMBER PRIMARY KEY,
    EMPLOYEE_NAME VARCHAR2(50),
    DEPARTMENT_ID NUMBER,
    SALARY NUMBER,
    MANAGER_ID NUMBER
);

-- 샘플 데이터
INSERT INTO EMPLOYEES (EMPLOYEE_ID, EMPLOYEE_NAME, DEPARTMENT_ID, SALARY, MANAGER_ID) VALUES (1, 'John', 10, 5000, NULL);
INSERT INTO EMPLOYEES (EMPLOYEE_ID, EMPLOYEE_NAME, DEPARTMENT_ID, SALARY, MANAGER_ID) VALUES (2, 'Jane', 10, 6000, 1);
INSERT INTO EMPLOYEES (EMPLOYEE_ID, EMPLOYEE_NAME, DEPARTMENT_ID, SALARY, MANAGER_ID) VALUES (3, 'Mike', 20, 4000, 1);
INSERT INTO EMPLOYEES (EMPLOYEE_ID, EMPLOYEE_NAME, DEPARTMENT_ID, SALARY, MANAGER_ID) VALUES (4, 'Sara', 20, 5500, 3);
INSERT INTO EMPLOYEES (EMPLOYEE_ID, EMPLOYEE_NAME, DEPARTMENT_ID, SALARY, MANAGER_ID) VALUES (5, 'Tom', 30, 7000, 2);
INSERT INTO EMPLOYEES (EMPLOYEE_ID, EMPLOYEE_NAME, DEPARTMENT_ID, SALARY, MANAGER_ID) VALUES (6, 'Lisa', 30, 4500, 5);

SELECT SUM(e.SALARY)
FROM EMPLOYEES e
WHERE e.DEPARTMENT_ID IN (
    SELECT DEPARTMENT_ID
    FROM EMPLOYEES
    START WITH DEPARTMENT_ID = 20
    CONNECT BY PRIOR EMPLOYEE_ID = MANAGER_ID
) 
AND [빈칸];