일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- spring boot
- 리눅스
- windows grafana 설치
- 도커
- SpringBoot
- Java
- React
- spring file download for path
- java 버전별
- java file download for path
- java file download for url
- Java21
- grafana 설치
- docker
- spring file download for url
- java8
- jvm
- k6 granafa influxdb
- url 파일 다운로드
- JavaScript
- grafana local
- memcached
- CentOS6
- 그라파나 설치
- spring
- docker 설치
- k6 gui
- java9
- grafana windows
- MySQL
- Today
- Total
개발자의 길
[oracle] 이전글 다음글 분석함수(LAG,LEAD) 본문
현재 행의 이전 또는 이후의 행 값을 들고와야 할 때. 아래의 펑션을 이용하면 됨.
/* LEAD() OVER() FUNCTION
현재 행의 다음 데이터에 접근.
ACCESS_ROW_INDEX : 현재 행 기준 N 번째 행의 값을 들고 옴.
1 : 현재 행의 바로 다음 행 값.
2 : 현재 행의 2번째 행 값.
...
*/
-- QUERY
SELECT LEAD([COLUMN_NANE], [ACCESS_ROW_INDEX]) OVER(ORDER BY [COLUMN_NAME])
FROM [TABLE_NAME];
/* LAG() OVER() FUNCTION
현재 행의 이전 데이터에 접근.
*/
SELECT LAG([COLUMN_NANE], [ACCESS_ROW_INDEX]) OVER(ORDER BY [COLUMN_NAME])
FROM [TABLE_NAME];
Ex)
-- 다음글
SELECT A.*, LEAD(A.COLUMN1, 1) OVER(ORDER BY A.COLUMN2) AS NEXT_VALUE
FROM TABLE A;
COLUMN1 COLUMN2
1 A
2 B
3 C
의 데이터가 존재하는 경우 위 쿼리를 실행하면,
COLUMN1 COLUMN2 NEXT_VALUE
1 A 2
2 B 3
3 C (NULL)
--ACCESS_ROW_INDEX 가 2 인 경우
COLUMN1 COLUMN2 NEXT_VALUE
1 A 3
2 B (NULL)
3 C (NULL)
--이전글
SELECT A.*, LAG(A.COLUMN1, 1) OVER(ORDER BY A.COLUMN2) AS PREV_VALUE
FROM TABLE A;
COLUMN1 COLUMN2 PREV_VALUE
1 A (NULL)
2 B 1
3 C 2
'3. DB' 카테고리의 다른 글
[DB] Oracle 함수 <> MySQL 함수 (0) | 2015.10.27 |
---|---|
[mysql] 날짜 함수 정리 (0) | 2015.07.01 |
[ORACLE] WITH문을 이용해 가상테이블 만들기(WITH TABLE AS) (0) | 2014.02.26 |
[DB]구분자로 잘라서 가져오기(REGEXP_SUBSTR, SUBSTR+INSTR 2가지 방식) (0) | 2014.02.04 |
[DB] JOIN 문 설명(LEFT JOIN,RIGHT JOIN,INNER JOIN,OUTER JOIN) (0) | 2014.01.14 |
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.