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} NULLS는 value_expr의 null 값이 계산에 포함되는지 여부를 결정합니다. 기본값은 RESPECT NULLS입니다.
LAG나 다른 분석 함수를 value_expr로 사용하여 분석 함수를 중첩할 수 없습니다. 그러나 value_expr에 다른 내장 함수 표현식을 사용할 수는 있습니다.
참고:
- LEAD와 유효한 expr 형식에 대한 정보는 "About SQL Expressions"를 참조하세요.
- Oracle Database Globalization Support Guide의 부록 C는 문자 값일 때 LAG의 반환 값에 할당된 정렬(collation) 결정 규칙에 대한 정보를 제공합니다.
예제
다음 예제는 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 함수 문서
'코딩 > 오라클 함수' 카테고리의 다른 글
[오라클 레퍼런스 함수] LAST_DAY - 날짜가 속한 달의 마지막 날짜 반환 (0) | 2023.08.09 |
---|---|
[오라클 레퍼런스 함수] LAST - 그룹 내 마지막 값 반환 (0) | 2023.08.08 |
[오라클 레퍼런스 함수] JSON_VALUE - JSON 속성 값 추출 (0) | 2023.08.08 |
[오라클 레퍼런스 함수] JSON_TRANSFORM - JSON 문서 내용 변경 (0) | 2023.08.08 |
[오라클 레퍼런스 함수] JSON_TABLE - JSON 데이터를 관계형 뷰로 생성 (0) | 2023.08.08 |
댓글