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 41696 게시물 읽기
No. 41696
연속된 시간끼리 그룹핑을 할수 있을까요?
작성자
넵병
작성일
2019-02-22 12:31ⓒ
2019-02-22 12:32ⓜ
조회수
3,314

 데이터가

시작 | 종료

1800  | 1930

2030  | 2100

2100  | 2330

 

이렇게 시작 종료시간이 주어진다면

 

1800 ~ 1900 시 1row

2030 ~ 2330 시 1row  연속 된 시간끼리 그룹으로 묶어 이렇게 두개가 나오는

쿼리는 어떻게 해야 될까요?

 

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

WITH t AS
(
SELECT '1800' stm, '1930' etm FROM dual
UNION ALL SELECT '2030', '2100' FROM dual
UNION ALL SELECT '2100', '2330' FROM dual
)
SELECT MIN(stm) stm
     , MAX(etm) etm
  FROM (SELECT stm, etm
             , SUM(flag) OVER(ORDER BY stm) grp
          FROM (SELECT stm, etm
                     , DECODE(LAG(etm) OVER(ORDER BY stm), stm, 0, 1) flag
                  FROM t
                )
        )
 GROUP BY grp
 ORDER BY grp
;

마농(manon94)님이 2019-02-26 13:32에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41700가장최근에 입력된 로우 20개 가져오는 쿼리는 어떻게하나요? [1]
asdf
2019-03-21
3329
41699instance client 설치 및 client pc 연결오류 [1]
하리보마이쪄
2019-03-12
2883
41697특정한 컬럼명이 있는 테이블을 전부 찾으려면??? [1]
신승익
2019-02-25
3057
41696연속된 시간끼리 그룹핑을 할수 있을까요? [1]
넵병
2019-02-22
3314
41695group by 질문 [1]
group
2019-02-21
2946
41694질문 드립니다. [3]
hsn
2019-02-20
2781
41693월별 조회 쿼리 질문 [6]
고진학
2019-02-19
3209
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다