COL | COL2 | COL3 |
1 | 1 | 입력1 |
1 | 1 | 입력2 |
1 | 2 | 입력3 |
1 | 2 | 입력4 |
현재 위와같은 테이블 데이타를..
COL1 | COL2 | COL1_COL2_1 | COL1_COL2_2 |
1 | 1 | 입력값1 | 입력값2 |
1 | 2 | 입력값3 | 입력값4 |
아래와 같이 변경을 하고싶습니다. LISTAGG 를 써보면, 가로로 변경은 되나.. 한 컬럼안에 구분자로 해서 값이 다들어가서요.
COL1 COL2 의 행의 갯수가 일정하면 제가 ALIAS 로 컬럼명의 번호를 줘서 MAX로 해서 공백을 업애서 한줄로 합시던데..
ROW 갯수가 COL2 값이 다른 데이타의 ROW가 같은거지 그 같은 ROW 건수가 항상 다를수 있어서 불가능한거같습니다.
입력행만큼 가로로 변경하고 열 컬럼명을 제가 지어서 보여주고싶습니다.
TABLE1 의 COL1, COL2 그러니까.. COL1 의 값이 같은면 COL2 의 값이 다른 ROW 숫자는 무조건 같습니다..
잘은몰라도.. 될거같긴한데.. 방법을 모르겟네요.. 방법이나, 힌트 좀 부탁드립니다.
-- 이런거 말씀이신가요? WITH T(COL1, COL2, COL3) AS ( SELECT 1, 1, '입력1' FROM DUAL UNION ALL SELECT 1, 1, '입력2' FROM DUAL UNION ALL SELECT 1, 2, '입력3' FROM DUAL UNION ALL SELECT 1, 2, '입력4' FROM DUAL UNION ALL SELECT 1, 2, '입력5' FROM DUAL ) SELECT * FROM ( SELECT COL1, COL2, COL3, ROW_NUMBER() OVER(PARTITION BY T.COL1, T.COL2 ORDER BY T.COL3) RN FROM T) PIVOT( MAX(COL3) FOR RN IN ( 1 "지정1", 2 "지정2", 3 "지정3") )
COL1 | COL2 | 지정1 | 지정2 | 지정3 |
1 | 1 | 입력1 | 입력2 | |
1 | 2 | 입력3 | 입력4 | 입력5 |