문제
다음 윈도우 함수의 결과에서 SALARY=2000인 직원의 TOTAL_SALARY 값은?
[EMPLOYEE] NAME: A,B,C,D / SALARY: 1000,2000,2000,3000
SQLSELECT NAME, SALARY, SUM(SALARY) OVER(ORDER BY SALARY ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS TOTAL_SALARY FROM EMPLOYEE;
① 4000 ② 5000 ③ 6000 ④ 직원마다 다름
정답
4번
해설
ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING은 현재 행을 기준으로 앞의 1개 행과 뒤의 1개 행을 포함한 범위에서 집계합니다. SALARY=2000인 두 직원은 각각 다른 물리적 행 위치를 가지므로 계산 결과가 서로 다를 수 있습니다. 예를 들어 한 직원은 1000+2000+2000=5000, 다른 직원은 2000+2000+3000=7000이 됩니다.