안녕하세요.
도움이 필요해 글 남깁니다.
LO_KEY,BASE_CODE 두칼럼을
ORDER BY 했을 때
연속된 구간별로
LO_SEQ MIN,MAX 값을 뽑아
참조 데이터를 만들고자 합니다.
일반적인 RANK 함수로 묶으면 순서를 고려 않고 구간이 묶이는데
아래와 같은 형태로 만들려고 합니다.
LO_KEY,BASE_CODE,LO_SEQ
1 AA 1~2
1 BB 3
1 AA 5
2 AA 1~2
3 AA 4
WITH TT AS
(
SELECT 1 LO_KEY, 1 LO_SEQ, 'AA' BASE_CODE FROM dual
UNION ALL SELECT 1, 2, 'AA' FROM dual
UNION ALL SELECT 1, 3, 'BB' FROM dual
UNION ALL SELECT 1, 5, 'AA' FROM dual
UNION ALL SELECT 2, 1, 'AA' FROM dual
UNION ALL SELECT 2, 2, 'AA' FROM dual
UNION ALL SELECT 3, 4, 'AA' FROM dual
)
SELECT A.*
FROM TT A
ORDER BY LO_KEY,LO_SEQ,BASE_CODE;
-------------------
1 1 AA <- 1그룹
1 2 AA <- 1그룹
1 3 BB <- 2그룹
1 5 AA <- 3그룹
2 1 AA <- 4그룹
2 2 AA <- 4그룹
3 4 AA <- 5그룹
|