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 40977 게시물 읽기
No. 40977
쿼리 좀 부탁합니다.
작성자
땡구리
작성일
2015-10-20 15:12
조회수
9,010
 
안녕하세요.
 
A 303 20150817140248 20150817140310
A 316 20150817140310 20150817153924 96
A 432 20150817153924 20150817153957
A 426 20150817153957 20150817154218
A 423 20150817154218 20150817154341
A 101 20150817154341 20150817154524
A 112 20150817154524 20150817154614
A 117 20150817154614 20150817154754
A 118 20150817154754 20150817163924 52
A 117 20150817163924 20150817164127
A 230 20150817164127 20150817164323
A 262 20150817164323 20150817164405
A 229 20150817164405 20150817171807 34
A 229 20150817171807 20150817172058
A 262 20150817172058 20150817172311
A 230 20150817172311 20150817172333
A 112 20150817172333 20150817172427
A 101 20150817172427 20150817172531
A 401 20150817172531 20150817172559
A 423 20150817172559 20150817172749
A 424 20150817172749 20150817172833
A 426 20150817172833 20150817172903
A 432 20150817172903 20150817173241
 
위와 같이 두 시간을 비교하여 시간차를 만들었으며 시간차가
30분 이상일 경우 구분을 두어 다음과 같이 생성하려고 합니다.
 
A    1    303, 316
A    2    432, 426, 423, 101, 112, 117, 118
A    3    117, 230, 262, 229
A    4    229, 262, 230, 112, 101, 401, 423, 424, 426, 432
 
고수님들 도움이 부탁드립니다.
고맙습니다.
 
 

 

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

WITH t AS
(
SELECT 'A' gb, 303 seq, '20150817140248' tm FROM dual
UNION ALL SELECT 'A', 316, '20150817140310' FROM dual
UNION ALL SELECT 'A', 432, '20150817153924' FROM dual
UNION ALL SELECT 'A', 426, '20150817153957' FROM dual
UNION ALL SELECT 'A', 423, '20150817154218' FROM dual
UNION ALL SELECT 'A', 101, '20150817154341' FROM dual
UNION ALL SELECT 'A', 112, '20150817154524' FROM dual
UNION ALL SELECT 'A', 117, '20150817154614' FROM dual
UNION ALL SELECT 'A', 118, '20150817154754' FROM dual
UNION ALL SELECT 'A', 117, '20150817163924' FROM dual
UNION ALL SELECT 'A', 230, '20150817164127' FROM dual
UNION ALL SELECT 'A', 262, '20150817164323' FROM dual
UNION ALL SELECT 'A', 229, '20150817164405' FROM dual
UNION ALL SELECT 'A', 229, '20150817171807' FROM dual
UNION ALL SELECT 'A', 262, '20150817172058' FROM dual
UNION ALL SELECT 'A', 230, '20150817172311' FROM dual
UNION ALL SELECT 'A', 112, '20150817172333' FROM dual
UNION ALL SELECT 'A', 101, '20150817172427' FROM dual
UNION ALL SELECT 'A', 401, '20150817172531' FROM dual
UNION ALL SELECT 'A', 423, '20150817172559' FROM dual
UNION ALL SELECT 'A', 424, '20150817172749' FROM dual
UNION ALL SELECT 'A', 426, '20150817172833' FROM dual
UNION ALL SELECT 'A', 432, '20150817172903' FROM dual
)
SELECT gb
     , grp
     , LISTAGG(seq, ',') WITHIN GROUP(ORDER BY tm) x
  FROM (SELECT gb, seq, tm
             , SUM(flag) OVER(PARTITION BY gb ORDER BY tm) grp
          FROM (SELECT gb, seq, tm
                     , CASE WHEN LAG(tm) OVER(PARTITION BY gb ORDER BY tm)
                               > tm - 1/24/60 * 30
                            THEN 0 ELSE 1 END flag
                  FROM (SELECT gb, seq
                             , TO_DATE(tm, 'yyyymmddhh24miss') tm
                          FROM t
                        )
                )
        )
 GROUP BY gb, grp
 ORDER BY gb, grp
;

마농(manon94)님이 2015-10-20 17:57에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40980SQLP 문제 이해가 안갑니다;; [2]
J
2015-10-22
9144
40979특정 시점 이후 데이터가 수정된 테이블 찾는 방법을 알고싶습니다. [1]
한동훈
2015-10-21
8947
40978카운트 함수 여러개 사용 어떻게 하나요(서브쿼리없이) [1]
어려워
2015-10-20
8882
40977쿼리 좀 부탁합니다. [1]
땡구리
2015-10-20
9010
40976구오라클에서 신오라클로 마이그레이션시 userid를 변경하는데 속도 질문입니다 [1]
허윤정
2015-10-20
8804
40975파티션을 힌트로 사용하려는데.... [2]
임금펭귄
2015-10-20
8805
40973[쿼리]연속된 숫자 쿼리하는 방법은? [1]
최병련
2015-10-16
9073
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다