행을 열로 (그룹핑해서...) 0 2 329

by 스파르타 [SQL Query] [2019.06.03 20:23:11]


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

by 마농 [2019.06.03 20:51:08]
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
;

 


by 스파르타 [2019.06.03 21:00:58]

마농님 항상 감사합니당~~^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입