Search Results for 'lead'

1 POSTS

  1. 2010|06 Oracle - LAG(), LEAD() 함수 사용

Oracle - LAG(), LEAD() 함수 사용

Posted 06 1, 2010 11:49, Filed under: DataBase/Oracle

PURPOSE

SCOPE & APPLICATION

KEY IDEA

ANALYTIC FUNCTION,PARTITION, WINDOW, CURRENT ROW, Lag, Lead, RATIO

SUPPOSITION

VERSION : ORACLE 8.1.6 이상

DESCRIPTION

기존 RDBMS에서는 다른 시간대에 있는 값들을 참조하기 위한 포인터를 가지고 있지 않다. 이것은 집합에서 모든 요소가 동등한 자격과 위치를 가지며 서로를 참조하기 위한 포인터를 가지고 있지 않기 때문이다.

Analytic Function의 Lag와 Lead는 다른 시간대에 있는 값들을 비교하기 위한 포인터를 제공하기 때문에 이러한 연산을 수행할 경우 아주 유리하다.

{LAG | LEAD}
(<value expression1>, [<offset> [, <default>]]) OVER
([PARTITION BY <value expression2>[,...]]
ORDER BY <value expression3> [collate clause>]
[ASC | DESC] [NULLS FIRST | NULLS LAST] [,...])

<offset> 은 옵션이며 지정하지 않으면 1 이 default로 사용된다.

다음 SQL은 Lag와 Lead Function을 사용하여 자신이 소속한 부서에서 자기보다 월급이 많은 사원의 급여와 자기보다 월급이 적은 사원의 급여를 참조하기 위한 것이다.

select deptno,empno,sal,
       lag(sal,1)   over (order by deptno,sal) as sal_lag,
       lead(sal,1) over (order by deptno,sal) as sal_lead
  from emp

[출처] Oracle Analytic Function LAG/LEAD|작성자 미스터피


## LAG(), LEAD() 함수 사용시 필수입력 : OVER(ORDER BY )

-- LAG(A, B, C) A:대상로우, B:가져올위치(대상로우 이전값, default:1), C:기본으로 채울값(default: NULL값)
-- LEAD(A, B, C) A:대상로우, B:가져올위치(대상로우 다음값, default:1), C:기본으로 채울값
(default: NULL값)

SQL> WITH T AS
(
    SELECT 1 A FROM DUAL UNION ALL
    SELECT 2 FROM DUAL UNION ALL
    SELECT 3 FROM DUAL UNION ALL
    SELECT 4 FROM DUAL UNION ALL
    SELECT 5 FROM DUAL
)
SELECT A,
      LAG(A, 1, 123) OVER(ORDER BY A) PREV_VALUE,
       LEAD(A, 2, 123) OVER(ORDER BY A) NEXT_VALUE
FROM T;

A           PREV_VALUE     NEXT_VALUE
----------- ----------- -----------
          1         123                3
          2           1                 4
          3           2                 5
          4           3              123
          5           4              123

5 rows selected.

06 1, 2010 11:49 06 1, 2010 11:49

Trackback URL : http://develop.sunshiny.co.kr/trackback/485

Leave a comment


Recent Posts

  1. Oracle - 바인드 변수에 대하여(테스트)
  2. Oracle - 디폴트 롤, DBA, CONNECT,...
  3. Oracle - 권한 및 롤 관리
  4. Oracle - SQL*PLUS의 SYSDBA 접근 제어
  5. Oracle - PFILE, SPFILE 에 관하여

Recent Comments

  1. 네 답글 고맙습니다. 좋은 한주 보... sunshiny 05 14,
  2. 좋은 정보 잘 살펴보고 갑니다. ememoho 05 12,
  3. 네. 고맙습니다^^ 행복한 한해 보... sunshiny 01 16,
  4. sunshiny님. 안녕하세요... 올려 주... yihans 01 16,
  5. 답글 주셔서 고맙습니다^^ 소스 복... sunshiny 01 11,

Recent Trackbacks

  1. 윈도우 cmd 명령어 팁 월풍도원(月風道院) - Delight on th... %M
  2. 파일 압축 Like RadioHead %M
  3. Mysql - mysql 설치후 Character set... 멀고 가까움이 다르기 때문 %M

Calendar

«   05 2012   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Bookmarks

  1. 위키피디아
  2. MysqlKorea
  3. Oracle All Documentation
  4. 엑셈
  5. 오라클 클럽
  6. 네이버개발자센터
  7. API - Java
  8. API - Spring
  9. Java Community
  10. Reference - Spring
  11. 스프링사용자
  12. 자바소스
  13. 자바지기
  14. Ready System
  15. Solaris Freeware
  16. Linux-Site
  17. RedHat Korea
  18. 윈디하나의 솔라나라

Site Stats

TOTAL 245451 HIT
TODAY 157 HIT
YESTERDAY 139 HIT