-- 함수는 특별히 없어보입니다..
-- sql로 풀자면 ( 손으로 옮겨서 오타 있을수 있어요)
select t.a , t.시작
, lag(종료) over(partition by a order by 시작) 종료
from ( select * from tbl1
union all
select a , '' , '' from tbl goup by a
) t
order by a , 시작
by oradb
[2023.03.28 13:41:11]
감사합니다. 덕분에 막혔던게 풀렸습니다! :)
by 마농
[2023.03.30 11:04:11]
WITH tab1 AS
(
SELECT 'aa' a, 2016 시작, 2019 종료 FROM dual
UNION ALL SELECT 'aa', 2019, 2021 FROM dual
UNION ALL SELECT 'aa', 2022, 2023 FROM dual
)
SELECT a
, 시작
, LAG(종료) OVER(PARTITION BY a ORDER BY 시작, 종료) 종료
FROM tab1
GROUP BY a, ROLLUP((시작, 종료))
;
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.