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 40478 게시물 읽기
No. 40478
고난이도 쿼리 질문
작성자
디비사랑
작성일
2014-05-28 20:47ⓒ
2014-05-29 03:32ⓜ
조회수
6,907

아래와 같은 데이터가 있는데 시간간격을 구하는것이 좀 어려워서 고수님들의 자문좀 구해보겠습니다.

SELECT 1 work_id, 'start' gbn, to_date('2014-01-02','YYYY-MM-DD') work_dt FROM dual UNION ALL

SELECT 1 work_id, 'end' gbn, to_date('2014-01-03','YYYY-MM-DD') work_dt FROM dual UNION ALL

SELECT 20 work_id, 'start' gbn, to_date('2014-01-05','YYYY-MM-DD') work_dt FROM dual UNION ALL

SELECT 21 work_id, 'start' gbn, to_date('2014-01-09','YYYY-MM-DD') work_dt FROM dual UNION ALL

SELECT 30 work_id, 'start' gbn, to_date('2014-01-15','YYYY-MM-DD') work_dt FROM dual UNION ALL

SELECT 30 work_id, 'end' gbn, to_date('2014-01-17','YYYY-MM-DD') work_dt FROM dual

로직은 시작일과 종료일별 일자간격을 구하는것인데

시작일기준 : gbn의 값이 'start'이고

종료일기준1 :다음행의 work_id동일하고 gbn값이 'end'

종료일기준2 :다음행의 work_id가 다르고 gbn값이 'start'

원하는 결과는 아래와 같습니다.

start_dt *********** end_dt *********** term 2014-01-02 ******* 2014-01-03 ******* 1 2014-01-05 ******* 2014-01-09 ******* 4 2014-01-09 ******* 2014-01-15 ******* 6 2014-01-15 ******* 2014-01-17 ******* 2

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

-- 예시자료가 너무 순박하네요...
-- 예시자료가 위처럼 깔끔하다면 복잡한 규칙 없이 그냥 다음행 값만 참조하면 될 듯
-- 예외가 있다면 그걸 포함한 지저분한 예를 들어주세요.
SELECT work_id, start_dt, end_dt
  FROM (SELECT work_id, gbn
             , work_dt start_dt
             , LEAD(work_dt) OVER(ORDER BY work_dt) end_dt
          FROM t
        )
 WHERE gbn = 'start'
;

마농(manon94)님이 2014-05-29 08:20에 작성한 댓글입니다.
이 댓글은 2014-05-29 08:20에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
40481https://localhost:1158/em 이 안됩니다.
김성환
2014-05-30
8532
40480고난이도 쿼리 질문2 [2]
디비사랑
2014-05-30
6981
40479Oracle 과 MSSQLserver 메모리 사용할때 관련 질문
채미남
2014-05-29
6413
40478고난이도 쿼리 질문 [1]
디비사랑
2014-05-28
6907
40477쿼리 질문 [2]
초보
2014-05-28
6452
40476계층구조 쿼리 부탁드림니다. [4]
dba
2014-05-28
7209
40475윈도우 8.1 임포트 너무 느려요 ㅠ.ㅠ
앤드르미
2014-05-28
6898
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다