문제
다음 [직원] 테이블에서 SQL문을 실행했을 때, 이름이 '이'인 행의 salary_diff 값을 쓰시오.
| 이름 | 부서 | 연봉 | 입사일 |
|---|---|---|---|
| 김 | IT | 4000 | 2020-01-01 |
| 이 | IT | 4500 | 2021-03-01 |
| 박 | IT | 5000 | 2019-06-01 |
| 최 | HR | 3500 | 2020-05-01 |
| 정 | HR | 4000 | 2021-01-01 |
SQLSELECT 이름, 연봉 - LEAD(연봉, 1, 연봉) OVER (PARTITION BY 부서 ORDER BY 입사일 DESC) AS salary_diff FROM 직원;
정답
500
500
해설
LEAD() 윈도우 함수는 다음 행의 값을 가져온다. 세 번째 매개변수는 다음 행이 없을 때의 기본값이다. 이(IT, 4500, 2021-03-01)의 경우: IT 부서에서 입사일 내림차순으로 정렬하면 이(2021-03-01), 김(2020-01-01), 박(2019-06-01) 순이다. 이의 다음 행은 김(4000)이므로 4500 - 4000 = 500이 결과값이다.