select a, 시작, 종료 from tab1;
| A | 시작 | 종료 |
| aa | 2016 | 2019 |
| aa | 2019 | 2021 |
| aa | 2022 | 2023 |
위 데이터를 아래와 같이 변경할수 있는 함수가 따로 있을까요?
|
-- 함수는 특별히 없어보입니다..
-- 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 , 시작
감사합니다. 덕분에 막혔던게 풀렸습니다! :)
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((시작, 종료))
;