|
♧ 정의 : self join하지 않고 하나의 테이블에서 동시에 한 행(row)이상을 접근하여 자료를 가져 올 수 있다. 즉, n개의 Record를 조회할 때 현재 Record와 이전Record의 값을 한Record로 보여줄 수 있다. - 반대로 하위 행을 찾는 함수는 LEAD 함수 이다.
【Version】 ORACLE 8.1.6
【형식】LAG(value_expr [,offset] [,default] ) OVER (PARTITION BY [partition_clause] ORDER BY [order_by_clause] )
. value_expr : 이전,이후 레코드의 찾고자하는 컬럼. 반드시 컬럼 한 개만 필요 . order_by_clause : 이전,이후레코드를 알기 위한 정렬 . offset : 1 - 이전 첫 번째 레코드를 찾아옴 2 - 이전 두 번째 레코드를 찾아옴 즉, 해당 offset 숫자만큼 이전 레코드를 찾는다. 반드시 양수임 . default : ?? . partition_clause : Group by 와 같은 의미
【예제】SQL> SELECT name,salary,LAG(salary,1,0) OVER (ORDER BY salary) FROM employees;
【결과】 NAME SALARY LAG(SALARY,1,0)OVER(ORDERBYSALARY) ---------- ---------- ---------------------------------- jijoe 220 0 Joe 240 220 Cho 250 240 kim 250 250 |