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 40531 게시물 읽기
No. 40531
그룹 순서별로 묶는것에 대해 문의드립니다.
작성자
김태경(cranes)
작성일
2014-07-21 15:13
조회수
7,232

그룹의 정렬조건이 seq 기준으로

정렬순서가 잡히게 해야 하는데 생각대로 되지 않아 이렇게 문의드립니다.

 

 

WITH t AS (

 

SELECT 1 seq , '모자' title , '끈' so FROM dual UNION ALL

SELECT 7 seq , '모자' title , '지퍼' FROM dual UNION ALL

SELECT 9 seq , '모자' title , '지갑' FROM dual UNION ALL

SELECT 11 seq , '가방' title , '끈' FROM dual UNION ALL

SELECT 13 seq , '모자' title , '지갑' FROM dual UNION ALL

SELECT 16 seq , '신발' title , '밑창' FROM dual UNION ALL

SELECT 47 seq , '가방' title , '휴대폰' FROM dual

)

 

SELECT

 

LISTAGG ( title || '( '||

 

LISTAGG( so , ', ') WITHIN GROUP (ORDER BY seq )

 

||' )' ,', ' ) WITHIN GROUP (ORDER BY title ) c

FROM t

 

GROUP by title

;

 

위문장을 실행하면 결과값은 : 가방( 끈, 휴대폰 ), 모자( 끈, 지퍼, 지갑, 지갑 ), 신발( 밑창 ) 이렇게 나옵니다.

 

제가 원하는 결과값은 : 모자( 끈, 지퍼, 지갑, 지갑 ), 가방( 끈, 휴대폰 ), 신발( 밑창 ) 입니다.

 

감사합니다.

 

 

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

SELECT LISTAGG(title || '( ' ||
       LISTAGG(so, ', ') WITHIN GROUP(ORDER BY seq)
       || ' )', ', ') WITHIN GROUP(ORDER BY MIN(seq)) c
  FROM t
 GROUP BY title
;

마농(manon94)님이 2014-07-21 16:49에 작성한 댓글입니다.
이 댓글은 2014-07-21 16:50에 마지막으로 수정되었습니다.

마농님  답변 너무 감사합니다.

 

잘 활용하겠습니다.

김태경(cranes)님이 2014-07-22 16:19에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40534중복된 건 조회시 특정조건은 제외하고 한건만 조회하는법 [1]
김승유
2014-07-22
7230
40533표준편차 쿼리 관련 질문 [6]
quest
2014-07-22
9250
40532서버에 win7pro 설치하고 오라클 사용하면...
임철수
2014-07-21
7245
40531그룹 순서별로 묶는것에 대해 문의드립니다. [2]
김태경
2014-07-21
7232
40530오라클 ARCHIVELOG UNTIL TIME 'SYSDATE-10' DELETE INPUT;
김수호
2014-07-20
7365
40529오라클 치환관련 문의드립니다. [1]
초보자
2014-07-17
7063
40528쿼리 질문입니다. [1]
쿼리 qa
2014-07-17
7205
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다