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 40338 게시물 읽기
No. 40338
시간대 별로 묶어서 출력하기
작성자
바램
작성일
2013-12-15 06:02ⓒ
2013-12-15 06:22ⓜ
조회수
7,324

급한 프로젝트라 문의 드립니다.
아래와 같이 출력되는 쿼리를 작성했는데요.

seq  항목A 항목B FIRST_STAT SECOND_STAT THIRD_START  STAND_DATE STAND_HOUR
A B1 2013/06/10 05:57 2013/06/10 05:59  2013/06/10 06:00 2013-06-10 06
367  A B2 2013/06/10 05:57 2013/06/10 05:59  2013/06/10 06:00 2013-06-10 06
21  A B3 2013/06/10 06:44 2013/06/10 06:45 2013/06/10 06:47 2013-06-10 06
19 A B4 2013/06/10 06:38 2013/06/10 06:40 2013/06/10 06:42   2013-06-10 06
17 A B5 2013/06/10 06:23  2013/06/10 06:34 2013/06/10 06:34   2013-06-10 06
15 A B1 2013/06/10 07:47 2013/06/10 07:49 2013/06/10 07:51  2013-06-10 07
13  A B2 2013/06/10 07:41 2013/06/10 07:42 2013/06/10 07:45  2013-06-10 07
11 A B3 2013/06/10 07:37  2013/06/10 07:40 2013/06/10 07:40 2013-06-10 07
9 A B4 2013/06/10 07:32 2013/06/10 07:35 2013/06/10 07:38 2013-06-10 07
383 A B5 2013/06/10 08:48 2013/06/10 08:49 2013/06/10 08:52  2013-06-10 08
381 A B1 2013/06/10 08:49 2013/06/10 08:58 2013/06/10 08:58  2013-06-10 08
379 A B2 2013/06/10 07:58 2013/06/10 08:00 2013/06/10 08:02 2013-06-10 08
377  A B3 2013/06/10 07:58 2013/06/10 08:00 2013/06/10 08:02 2013-06-10 08
375  A B4 2013/06/10 07:58 2013/06/10 08:06 2013/06/10 08:08  2013-06-10 08
411 A B5 2013/06/10 08:10 2013/06/10 08:12  2013/06/10 08:13  2013-06-10 08
458 A B1 2013/06/10 08:17 2013/06/10 08:19  2013/06/10 08:19 2013-06-10 08
433 A B2 2013/06/10 08:20 2013/06/10 08:26 2013/06/10 08:28 2013-06-10 08


요지는 STAND_HOUR 컬럼의 시간대 별로 묶어서 출력하고 싶어서

ELECT 컬럼,
        LTRIM(sys_connect_by_path(컬럼,','),',') AS 컬럼명
FROM  (
        SELECT 컬럼,
        menurole_id,
        row_number() OVER (partition by 그룹컬럼 order by 정렬할컬럼) rn,
        COUNT (*) OVER (partition by 그룹컬럼 ) cnt
        FROM 테이블명
)
WHERE level = cnt
start with rn = 1
connect by prior 그룹컬럼 = 그룹컬럼 and prior rn = rn-1

이것을 이용해 봤는데요.

다른 것들이 STAND_HOUR 컬럼이 06이라면 한데 묶여서
LTRIM을 사용했을 때 항목B라면 B1,B2,B3,B4,B5 하나로 묶여서 출력되어야 합니다.

여러가지로 시도해 보는데 정확히 출력되지 않아 문의드립니다.
도움 부탁드립니다.

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

글쎄요?
사용하신 방법대로 하셨다면? 정상적으로 나와야 할 것입니다.
원하시는 결과가 안나온다면? [그룹컬럼]이라고 표시한 부분에
항목 설정을 잘못 하신게 아닐까? 생각됩니다.
sys_connect_by_path 를 이용하는 방법보다는
다른 방법을 이용하시는 것이 좋을 듯 하네요.
http://www.oracleclub.com/article/55512

마농(manon94)님이 2013-12-17 15:36에 작성한 댓글입니다.

답변 감사드립니다.

다시 시도 해 보겠습니다.

바램님이 2013-12-18 19:28에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
40341트랜잭션 1번으로 여러Row Update 수정본.
새하정
2013-12-18
6335
40340오라클에서 복합연사자 사용한 산식 처리 문제 [4]
정재영
2013-12-17
6867
40339UNION ALL SELECT....FROM DUAL 효율성은 어떤가요? [1]
드라군
2013-12-16
6615
40338시간대 별로 묶어서 출력하기 [2]
바램
2013-12-15
7324
40337데이터와 인덱스 테이블 스페이스 위치 관련입니다. [1]
조형래
2013-12-12
6217
40336[문의] 계정에 테이블스페이스 추가하는 방법 문의드립니다 [3]
임철수
2013-12-11
6343
40335시퀀스 권한 문제... [1]
김정훈
2013-12-10
6550
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다