24-3[직원] 테이블과 [과제] 테이블이 다음과 같다. 아래 SQL … | 2024년 정보처리기사실기 3회차 기출문제 상세 페이지
5
24-3
[직원] 테이블과 [과제] 테이블이 다음과 같다. 아래 SQL 문을 실행했을 때 결과 ( )에 들어갈 값을 적으시오.
[직원]
| 번호 | 이름 | 부서코드 |
|---|---|---|
| 1 | 강민호 | D1 |
| 2 | 윤서아 | D2 |
| 3 | 정우진 | D1 |
| 4 | 한소율 | D3 |
| 5 | 조하람 | D2 |
| 6 | 임태오 | D1 |
[과제]
| 부서코드 | 과제명 |
|---|---|
| D1 | 관제 |
| D2 | 결제 |
| D3 | 배송 |
| D3 | 정산 |
| D4 | 인증 |
SELECT COUNT(*)
FROM 직원 e JOIN 과제 t
ON e.부서코드 = t.부서코드
WHERE t.과제명 IN (SELECT 과제명
FROM 과제
WHERE 부서코드 IN (SELECT 부서코드
FROM 직원
GROUP BY 부서코드
HAVING COUNT(*) <= 2));[결과]
| COUNT(*) |
|---|
| ( ) |
해설
4
[해설]
중첩 서브쿼리는 가장 안쪽부터 푼다. 직원 수가 2명 이하인 부서는 D2(2명)·D3(1명)이고, 이 부서들의 과제명은 결제·배송·정산이다.
- D1 직원 3명 × 관제 — 과제명이 목록에 없어 제외된다.
- D2 직원 2명 × 결제 — 2행이 남는다.
- D3 직원 1명 × 배송·정산 — 과제가 둘이라 직원 1명이 2행으로 늘어난다.
조건을 통과한 조인 행은 2 + 2 = 4개다. D4는 직원이 없어 내부 조인에서 처음부터 빠진다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.