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 40650 게시물 읽기
No. 40650
데이터를 순차적으로 정렬후 그룹으로 묶고 싶습니다
작성자
황민환(nzzang312)
작성일
2014-12-15 08:54
조회수
6,339

지금 오라클에서 작업중입니다.

혹시나 하는 마음에 여기에도 질문을 드려봅니다.

 

테이블을 예로 들자면

COL1 COL2 COL3 COL4 COL5 COL6

-----------------------------------------------------------

A X X X X 500

B X X X X 500

C X X X X 500

D X O X X 1000

E X O X X 1000

F X X O X 2000

G X X X O 2000

H X X X X 500

I X X X X 500

 

이렇게 있는 데이터를 다음과 같이 뿌리고 싶습니다.

 

 

COL1 COL2 COL3 COL4 COL5 COL6

-----------------------------------------------------------

A ~ C X X X X 500

D ~ E X O X X 1000

F X X O X 2000

G X X X O 2000

H ~ I X X X X 500

 

GROUP BY로 COL2 ~ COL6까지 걸면 A~C, H~I를 구분을 지을수가 없네요

 

제발 이렇게 순차적으로 GROUP BY를 걸수 있는 방법좀 알려주세요.

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

WITH t AS
(
SELECT 'A' c1, 'X' c2, 'X' c3, 'X' c4, 'X' c5, 500 c6 FROM dual
UNION ALL SELECT 'B', 'X', 'X', 'X', 'X',  500 FROM dual
UNION ALL SELECT 'C', 'X', 'X', 'X', 'X',  500 FROM dual
UNION ALL SELECT 'D', 'X', 'O', 'X', 'X', 1000 FROM dual
UNION ALL SELECT 'E', 'X', 'O', 'X', 'X', 1000 FROM dual
UNION ALL SELECT 'F', 'X', 'X', 'O', 'X', 2000 FROM dual
UNION ALL SELECT 'G', 'X', 'X', 'X', 'O', 2000 FROM dual
UNION ALL SELECT 'H', 'X', 'X', 'X', 'X',  500 FROM dual
UNION ALL SELECT 'I', 'X', 'X', 'X', 'X',  500 FROM dual
)
SELECT MIN(c1) || DECODE(COUNT(*), 1, '', '~'||MAX(c1)) c1
     , c2, c3, c4, c5, c6
  FROM (SELECT c1, c2, c3, c4, c5, c6
             , ROW_NUMBER() OVER(ORDER BY c1) rn1
             , ROW_NUMBER() OVER(PARTITION BY c2, c3, c4, c5, c6
                                 ORDER BY c1) rn2
          FROM t
        )
 GROUP BY c2, c3, c4, c5, c6, rn1-rn2
 ORDER BY MIN(rn1)
;

마농(manon94)님이 2014-12-15 16:13에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40653SYSDATE FUNCTION 과 SQL 결과값이 다른데 확인 부탁드립니다. [3]
박재덕
2014-12-18
6442
40652현지 시간으로 저장하기 [1]
한동훈
2014-12-16
6603
40651BETWEEN 질문이요. 고수님들에게 [1]
그랜드
2014-12-16
6469
40650데이터를 순차적으로 정렬후 그룹으로 묶고 싶습니다 [1]
황민환
2014-12-15
6339
40649오라클 10g win 64bit 있으신분 ㅠㅠㅠ
박수빈
2014-12-12
6315
40648이런 sort가능할까요..? [3]
한상원
2014-12-12
6426
40647오라클 클라이언트 8.1.7 구합니다 [1]
오디세이
2014-12-12
6377
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다