본문 바로가기

[오라클 레퍼런스 함수] LAG - 해당 위치의 이전 행 데이터 조회

by ㅇㅍㅍ 2023. 8. 8.
[오라클 레퍼런스 함수] LAG - 해당 위치의 이전 행 데이터 조회
728x90

 

LAG

 

구문

LAG
  { ( value_expr [, offset [, default]]) [ { RESPECT | IGNORE } NULLS ] 
  | ( value_expr [ { RESPECT | IGNORE } NULLS ] [, offset [, default]] )
  }
  OVER ([ query_partition_clause ] order_by_clause)

 

참고:

value_expr의 유효한 형식을 포함한 구문, 의미, 그리고 제한 사항에 대한 정보는 분석 함수에 대한 내용을 참조하세요.

 

목적

LAG는 분석 함수입니다. LAG는 자체 조인 없이 동시에 테이블의 하나 이상의 행에 액세스할 수 있도록 합니다. 쿼리에서 반환된 일련의 행과 커서의 위치가 주어지면 LAG는 해당 위치 이전의(prior) 물리적 오프셋(physical offset)에 있는 행에 액세스할 수 있도록 합니다.

선택적 offset 인수에는 0보다 큰 정수를 지정합니다. offset을 지정하지 않으면 기본값은 1입니다. 선택적 기본값은 오프셋이 윈도우의 범위를 벗어날 경우에 반환됩니다. default를 지정하지 않으면 기본값은 null입니다.

{RESPECT | IGNORE} NULLSvalue_expr의 null 값이 계산에 포함되는지 여부를 결정합니다. 기본값은 RESPECT NULLS입니다.

LAG나 다른 분석 함수를 value_expr로 사용하여 분석 함수를 중첩할 수 없습니다. 그러나 value_expr에 다른 내장 함수 표현식을 사용할 수는 있습니다.

 

참고:

 

예제

다음 예제는 employees 테이블의 각 구매 담당자에 대해 이전에 고용된 직원의 급여를 제공합니다:

SELECT hire_date, last_name, salary,
       LAG(salary, 1, 0) OVER (ORDER BY hire_date) AS prev_sal
  FROM employees
  WHERE job_id = 'PU_CLERK'
  ORDER BY hire_date;
   
HIRE_DATE LAST_NAME                     SALARY   PREV_SAL
--------- ------------------------- ---------- ----------
18-MAY-03 Khoo                            3100          0
24-JUL-05 Tobias                          2800       3100
24-DEC-05 Baida                           2900       2800
15-NOV-06 Himuro                          2600       2900
10-AUG-07 Colmenares                      2500       2600

 


출처: 오라클 레퍼런스

원문 링크: Oracle LAG 함수 문서

 

반응형

댓글