민서
7,200
LAG(salary)는 모든 행을 통째로 보지 않고, 부서별로 끊은 뒤 salary DESC 순서에서 직전 행만 붙입니다. 그래서 diff_from_higher는 "현재 급여 - 더 높은 직전 급여"가 됩니다.
salary - LAG(salary) OVER ( PARTITION BY dept ORDER BY salary DESC )
PARTITION BY dept가 비교 범위를 부서 안으로 고정하고, ORDER BY salary DESC가 "누가 더 높은 급여인지"를 먼저 정합니다. 그래서 각 행은 같은 부서의 바로 위 급여와만 비교되고, 부서가 바뀌면 이전 값은 이어지지 않습니다.