다음 두 테이블에서 DEPT.dept_id, EMPLOYEE.dep_id와 DEPT.budget은 모두 NOT NULL이다. SQL을 실행했을 때 결과 한 행에 표시되는 값을 쓰시오.
| dept_id | budget |
|---|---|
| D1 | 90 |
| D2 | 150 |
| D3 | 210 |
| employee_id | dep_id |
|---|---|
| E1 | D1 |
| E2 | D1 |
| E3 | D2 |
| E4 | D3 |
| E5 | D3 |
WITH BUDGET_BASE AS (
SELECT AVG(budget) AS avg_budget
FROM DEPT
)
SELECT COUNT(e.employee_id)
FROM DEPT d
JOIN EMPLOYEE e ON e.dep_id = d.dept_id
CROSS JOIN BUDGET_BASE b
WHERE d.budget > b.avg_budget;모범답안
2
풀이와 판단 근거
부서 예산 평균은 (90+150+210)/3인 150이다. 평균보다 큰 부서는 budget 210인 D3 하나이며 EMPLOYEE에서 D3에 속한 직원은 E4와 E5 두 명이다.
JOIN과 WHERE 조건을 만족하는 두 직원 행을 COUNT가 집계하므로 쿼리는 한 행을 반환하고 그 한 셀의 값은 2다.
자주 틀리는 지점
- 평균과 같은 D2까지 포함해 3으로 계산
- 부서 수 1을 COUNT 결과로 답함
- COUNT가 직원별 두 행을 그대로 반환한다고 설명
자동 판정 방식
한글·영문 동의어와 문항별 필수 개념을 확인하며, 정답 단어가 부정되거나 반대 개념과 함께 쓰이면 자동 정답으로 확정하지 않습니다. 부분점수는 ITPASSLAB의 학습용 예상 점수입니다.