안녕하세요. 작업 진행중에 막히는 부분이 있어서 도움을 구하게 되었습니다. 스스로 해볼려고 여기저기 찾아서 보면서 해봤는데 잘 안되네요.. 시간이 너무 지체되어 이렇게 도움을 구하게 되었습니다. 죄송스럽지만 도움의 손길을 내밀어 주시면 감사드리겠습니다. 같은 id의 여러행을 열로 나열하여 하나의 행으로 만들려고 합니다. decode나 pivot으로 할려해봤는데 이해력이 딸려서 그런지 잘 안되더군요..
ID | SEQ | TYPE | SAVE_TIME | POINT |
0000000202 | OP1 | C | 2022-05-12 04:30:00 PM | 3 |
0000000202 | OP2 | C | 2022-05-12 04:40:00 PM | 3 |
0000000202 | OP3 | C | 2022-05-12 04:50:00 PM | 4 |
0000000202 | OP4 | C | 2022-05-12 05:00:00 PM | 5 |
0000000202 | OP5 | C | 2022-05-12 05:10:00 PM | 5 |
0000000203 | OP1 | C | 2022-05-12 05:20:00 PM | 3 |
0000000203 | OP2 | C | 2022-05-12 05:30:00 PM | 3 |
0000000203 | OP3 | C | 2022-05-12 05:40:00 PM | 4 |
0000000203 | OP4 | C | 2022-05-12 05:50:00 PM | 5 |
0000000203 | OP5 | P | 5 |
이런 식의 데이터를
ID | SUM_POINT | OP1 | OP2 | OP3 | OP4 | OP5 |
0000000202 | 20 | 2022-05-12 04:30:00 PM | 2022-05-12 04:40:00 PM | 2022-05-12 04:50:00 PM | 2022-05-12 05:00:00 PM | 2022-05-12 05:10:00 PM |
0000000203 | 15 | 2022-05-12 05:20:00 PM | 2022-05-12 05:30:00 PM | 2022-05-12 05:40:00 PM | 2022-05-12 05:50:00 PM |
이런 식으로 표현하고 싶습니다..
select '0000000202' as id, 'OP1' as seq, 'C' as type, to_date('2022-05-12 오후 4:30', 'yyyy-mm-dd am hh:mi') as save_time, '3' as point from dual union all select '0000000202' as id, 'OP2' as seq, 'C' as type, to_date('2022-05-12 오후 4:40', 'yyyy-mm-dd am hh:mi') as save_time, '3' as point from dual union all select '0000000202' as id, 'OP3' as seq, 'C' as type, to_date('2022-05-12 오후 4:50', 'yyyy-mm-dd am hh:mi') as save_time, '4' as point from dual union all select '0000000202' as id, 'OP4' as seq, 'C' as type, to_date('2022-05-12 오후 5:00', 'yyyy-mm-dd am hh:mi') as save_time, '5' as point from dual union all select '0000000202' as id, 'OP5' as seq, 'C' as type, to_date('2022-05-12 오후 5:10', 'yyyy-mm-dd am hh:mi') as save_time, '5' as point from dual union all select '0000000203' as id, 'OP1' as seq, 'C' as type, to_date('2022-05-12 오후 5:20', 'yyyy-mm-dd am hh:mi') as save_time, '3' as point from dual union all select '0000000203' as id, 'OP2' as seq, 'C' as type, to_date('2022-05-12 오후 5:30', 'yyyy-mm-dd am hh:mi') as save_time, '3' as point from dual union all select '0000000203' as id, 'OP3' as seq, 'C' as type, to_date('2022-05-12 오후 5:40', 'yyyy-mm-dd am hh:mi') as save_time, '4' as point from dual union all select '0000000203' as id, 'OP4' as seq, 'C' as type, to_date('2022-05-12 오후 5:50', 'yyyy-mm-dd am hh:mi') as save_time, '5' as point from dual union all select '0000000203' as id, 'OP5' as seq, 'P' as type, null as save_time, '5' as point from dual;
* SUM_PIONT는 TYPE이 C인것의 합계입니다.
* OP가 현재는 5까지이지만 추후 늘어날것 같습니다.