WITH t1 AS
(
SELECT '아이템1' item, 'A' GRP, '10011A' ID, '2' VAL1, '2' VAL2, '2' VAL3 FROM dual
UNION ALL SELECT '아이템1', 'A', '10012A', '3', '3', '3' FROM dual
UNION ALL SELECT '아이템1', 'A', '10012B', '3', '3', '2' FROM dual
UNION ALL SELECT '아이템1', 'A', '10013B', '1', '3', '3' FROM dual
)
ID의 끝자리 A 와 B 타입으로 나뉘어짐니다.
SUBSTR(ID,0,5) 로 그룹바이 한것처럼.... VAL1,VAL2,VAL3 가 A 타입이냐 B 타입이냐 따라 쪼개지구요. 아래처럼 컬럼이.
그룹바이 시 A 와 B 둘다 있을때 ID 는 A타입으로 나오면 됨니다. 아래 두번째 행의 ID 처럼요.
좋은방법 부탁드립니다~ ^^
<원하는 결과 >
=============================================================================================
item | GRP | ID | A_VAL1 | A_VAL2 | A_VAL3 | B_VAL1 | B_VAL2 | B_VAL3
=============================================================================================
아이템1 A 10011A 3 3 3
아이템1 A 10012A 3 3 3 3 3 2
아이템1 A 10013B 1 3 3
WITH t1 AS ( SELECT '아이템1' item, 'A' grp, '10011A' id, '2' val1, '2' val2, '2' val3 FROM dual UNION ALL SELECT '아이템1', 'A', '10012A', '3', '3', '3' FROM dual UNION ALL SELECT '아이템1', 'A', '10012B', '3', '3', '2' FROM dual UNION ALL SELECT '아이템1', 'A', '10013B', '1', '3', '3' FROM dual ) SELECT item , grp , MIN(id) id , MIN(DECODE(SUBSTR(id, -1), 'A', val1)) a_val1 , MIN(DECODE(SUBSTR(id, -1), 'A', val2)) a_val2 , MIN(DECODE(SUBSTR(id, -1), 'A', val3)) a_val3 , MIN(DECODE(SUBSTR(id, -1), 'B', val1)) b_val1 , MIN(DECODE(SUBSTR(id, -1), 'B', val2)) b_val2 , MIN(DECODE(SUBSTR(id, -1), 'B', val3)) b_val3 FROM t1 GROUP BY item, grp, SUBSTR(id, 1, 5) ORDER BY item, grp, id ;