LAG() 함수부터 살펴봅시다. 매개변수로 salary를 명시했고 나머지 매개변수는 생략했으니 n은 1, default_value는 NULL이 적용됩니다. 따라서 현재 로우를 기준으로 바로 앞(n이 1이므로 1 - 1) 로우의 salary 값을 가져오라는 것이죠.
결과를 보면 IT 부서의 103번 사원은 lag_previous 값으로 NULL이 반환됐는데, 지정된 파티션(IT 부서)과 정렬 순서(급여의 내림차순)를 기준으로 볼 때 앞 로우가 없어서 그렇습니다. 104번은 급여가 6000이고, 앞 로우는 103번이므로 lag_previous 값으로 9000을 반환했습니다. 이런 방식으로 LAG() 함수는 현재 로우를 기준으로 지정된 파티션과 순서에 따라 앞 로우의 값을 반환합니다.
이와 반대로 LEAD() 함수는 현재 로우를 기준으로 다음 로우의 값을 반환합니다. 결과의 lead_next 값을 보면 103번은 다음 로우인 104번의 급여 6000을, 104번은 105번의 급여인 4800을 반환했고, 마지막 107번은 범위 안에 다음 로우가 없으므로 NULL을 반환했습니다.