일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 다운로드
- jqeury
- jquery
- 2NE1
- javascript
- eclipse
- Download
- 태그를 입력해 주세요.
- 링크
- 한글
- M480
- Oracle
- DATABASE
- 미라지
- 이클립스
- 개발자
- 설치
- 검색
- java
- 오라클
- input box
- Modeling
- 10g
- update
- iTunes
- error
- SELECT UPDATE
- oracle not in
- html
- oracle not exists
- Today
- Total
not set
오라클 분석함수 LAG() & LEAD() 본문
신통방통한 함수다.
조회된 결과 셋 내의 전/후 레코드에 대한 값을 커서를 이동하여 알수 있다.
물론, 오라클에서만 지원한다.
아래의 예제query는 각 반별 평균을 내고, 자신을 기준으로 이전과 다음반의 평균을 조회한것이다.
select classId
, avgPoints
, lag(avgPoints, 1) over (order by classId) prevAvg
, lead(avgPoints, 1) over (order by classId) nextAvg
from (
select '2-1' classId
, 98.3 avgPoints
from dual
union all
select '2-2' classId
, 72.5 avgPoints
from dual
union all
select '2-3' classId
, 58.9 avgPoints
from dual
union all
select '2-4' classId
, 88.2 avgPoints
from dual
)
//-------------조회결과----------------
CLASSID AVGPOINTS PREVAVG NEXTAVG
2-1 98.3 72.5
2-2 72.5 98.3 58.9
2-3 58.9 72.5 88.2
2-4 88.2 58.9
lag(avgPoints, 1) over (order by classId) prevAvg
//커서를 뒤로 이동하여 조회하고자 하는 값 avgPoints, 이동되는 수 1, 정렬기준 classId
lead(avgPoints, 1) over (order by classId) nextAvg
//커서를 앞으로 이동하여 조회하고자 하는 값 avgPoints, 이동되는 수 1, 정렬기준 classId
'Database > query' 카테고리의 다른 글
Oracle 특수문자 검색 (0) | 2010.07.16 |
---|---|
Oracle 숫자 콤마찍기. (0) | 2010.07.13 |
oracle select update (0) | 2010.02.04 |
[Oracle] 부정형(NOT IN, <>, NOT EXISTS ...)의 비교 (0) | 2009.06.22 |
ANALYTIC FUNCTION (0) | 2009.06.22 |