티스토리 뷰
예를 들어 대출을 받은 고객의 대출상태 (정상, 연체)를 월별로 이력을 남겨놨다고 하자
고객의 대출상태가 변경된 월을 뽑고자 한다면 어떻게 해야 할까?
WITH T (MM,ST) AS ( SELECT '201601','1' FROM DUAL UNION ALL SELECT '201602','1' FROM DUAL UNION ALL SELECT '201603','1' FROM DUAL UNION ALL SELECT '201604','2' FROM DUAL UNION ALL SELECT '201605','2' FROM DUAL UNION ALL SELECT '201606','1' FROM DUAL UNION ALL SELECT '201607','2' FROM DUAL UNION ALL SELECT '201608','2' FROM DUAL UNION ALL SELECT '201609','1' FROM DUAL ) SELECT MM, ST FROM ( SELECT MM, ST, LEAD(ST,1,'*') OVER(ORDER BY MM) NST FROM T ) WHERE ST!= NST
오라클의 LEAD 함수는 다음 레코드의 값을 가져올 때 사용하고 사용법은 다음과 같습니다.
LEAD(컬럼, 순서, 기본값) OVER ([PARTITION BY 그룹컬럼] ORDER BY 컬럼)
이전 레코드의 값과 비교하는 경우에는 LAG 함수를 사용하고 사용법은 동일합니다.
'지식정보' 카테고리의 다른 글
JAVA 문자열에 휴대전화 포맷 적용 (0) | 2017.02.17 |
---|---|
과연 하이퍼루프 는 미래의 운송수단이 될 수 있을까? (0) | 2017.02.16 |
Tistory 에 SyntaxHighlighter 적용하기 (0) | 2017.02.15 |
[ORACLE] REGEXP_SUBSTR 함수 사용법 (0) | 2017.02.15 |
windows7 에서 텔넷 클라이언트 사용하기 (0) | 2017.01.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday