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