일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- jquery
- Download
- M480
- Modeling
- error
- 한글
- 검색
- input box
- 이클립스
- 오라클
- iTunes
- java
- 2NE1
- javascript
- 미라지
- 다운로드
- 링크
- DATABASE
- 개발자
- 10g
- jqeury
- eclipse
- Oracle
- SELECT UPDATE
- oracle not in
- 태그를 입력해 주세요.
- 설치
- update
- 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 |