SQLDSQL 활용윈도우 함수난이도 2MCQ

SQLD 윈도우 함수 기출문제 #63

문제

다음 SQL에서 PARTITION BY와 프레임 절의 조합으로 직원 'B'의 결과값은?

테이블: EMPLOYEE (DEPT VARCHAR(10), NAME VARCHAR(10), SALARY NUMBER) 데이터: ('IT', 'A', 3000), ('IT', 'B', 4000), ('IT', 'C', 5000), ('HR', 'D', 3000)

SQL
SELECT DEPT, NAME, SALARY, AVG(SALARY) OVER( PARTITION BY DEPT ORDER BY SALARY RANGE BETWEEN 1000 PRECEDING AND 1000 FOLLOWING ) AS AVG_SAL FROM EMPLOYEE;

① 3500.0 ② 4000.0 ③ 4333.33 ④ 4500.0

정답

2

해설

정답: ② IT 부서 내에서 B(4000)의 RANGE BETWEEN 1000 PRECEDING AND 1000 FOLLOWING은 급여 3000~5000 범위의 모든 행을 포함합니다. IT 부서의 A(3000), B(4000), C(5000) 모두 포함되어 평균은 (3000+4000+5000)/3 = 4000입니다. ①은 A와 B만의 평균이고, ③은 잘못된 계산입니다. ④는 B와 C만의 평균으로 RANGE 조건을 잘못 이해한 것입니다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[SQLD] 윈도우 함수 SQL 활용 기출 #63 | sqldpass