database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 40837 게시물 읽기
No. 40837
연속된 구간별 그룹 쿼리 문의
작성자
쿼리OTL
작성일
2015-06-18 15:39
조회수
8,079

안녕하세요.

 

도움이 필요해 글 남깁니다.

 

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그룹

이 글에 대한 댓글이 총 1건 있습니다.

SELECT lo_key
     , base_code
     , MIN(lo_seq) || DECODE(COUNT(*), 1, '', '~'||MAX(lo_seq)) lo_seq
  FROM (SELECT lo_key, lo_seq, base_code
             , ROW_NUMBER() OVER(PARTITION BY lo_key
                                     ORDER BY lo_seq) rn1
             , ROW_NUMBER() OVER(PARTITION BY lo_key, base_code
                                     ORDER BY lo_seq) rn2
          FROM tt
        ) a
 GROUP BY lo_key, base_code, rn1-rn2
 ORDER BY lo_key, MIN(a.lo_seq)
;

마농(manon94)님이 2015-06-19 12:31에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40840튜닝시 Cost / Response Time 중 어느걸 선택해야 하는지? [1]
박명수
2015-06-25
7240
40839[질문] Cent OS 6 에 오라클 9i 64비트 설치 문의 [1]
궁금이
2015-06-23
7706
40838시간의 총합을 구하는 문의 [2]
카멜
2015-06-22
7274
40837연속된 구간별 그룹 쿼리 문의 [1]
쿼리OTL
2015-06-18
8079
40836리스트를 만들고 싶습니다. [2]
선이
2015-06-17
7090
40835sql 조언 부탁드립니다. [1]
일쌍다반사
2015-06-17
7331
40833sql 하나 봐주세요. [2]
이현정
2015-06-16
7196
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다