더북(TheBook)

NTH_VALUE(salary, 2)는 해당 프레임에서 두 번째 로우의 salary 값을 반환하라는 의미입니다. 프레임 절에 ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING이라고 기술하므로 앞 로우부터 뒤 로우까지가 범위입니다. 따라서 105번은 104~106번이 범위이고, 두 번째 로우는 105번이므로 4800을 반환했습니다. 103번은 103~104번인데 두 번째 로우 값이므로 6000을 반환했습니다.

NTH_VALUE(salary, 3)은 해당 범위에서 세 번째 로우의 salary 값을 반환합니다. 그리고 프레임 절에 RANGE를 사용합니다. 따라서 103번은 값의 범위가 8000(9000 – 1000) ~10000(9000 + 1000)이고, 이에 해당하는 건은 9000인 자기 자신 1건밖에 없습니다. 세 번째 로우에 해당하는 건이 없으므로 NULL을 반환했습니다. 106번은 값의 범위가 3800~5800이므로 대상이 105, 106, 107번입니다. 따라서 세 번째 로우 값으로 107번의 급여인 4200을 반환했습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.