학과번호 | 학과명 | 이름 | 번호 | 팀 |
11 | 컴공 | alex | 1 | 1 |
11 | 컴공 | alex | 1 | 2 |
11 | 컴공 | tore | 2 | 1 |
11 | 컴공 | tore | 2 | 3 |
11 | 컴공 | toto | 3 | 1 |
상단 테이블을 하단 테이블로 변형을하고싶습니다.
학과번호 | 학과명 | 이름 | 번호 | 팀 | 팀1 | 팀2 |
11 | 컴공 | alext | 1 | 1 | 2 | |
11 | 컴공 | tore | 2 | 1 | 3 | |
11 | 컴공 | toto | 3 | 1 |
이렇게 변형해서 나타내줄수 있는 방법이 궁금합니다!
예를 든 테이블이며 팀은 1,2번이아닌 10,12 등등 다양합니다..ㅠ
WITH T AS ( SELECT 11 학과번호, '컴공' 학과명, 'alex' 이름, 1 번호, 1 팀 FROM dual UNION ALL SELECT 11, '컴공', 'alex', 1, 2 FROM dual UNION ALL SELECT 11, '컴공', 'tore', 2, 1 FROM dual UNION ALL SELECT 11, '컴공', 'tore', 2, 3 FROM dual UNION ALL SELECT 11, '컴공', 'toto', 3, 1 FROM dual ) SELECT 학과번호, 학과명, 이름, 번호, MIN(DECODE(rn, 1, 팀)) 팀, MIN(DECODE(rn, 2, 팀)) 팀1, MIN(DECODE(rn, 3, 팀)) 팀2 FROM ( SELECT T.*, ROW_NUMBER() OVER(PARTITION BY 학과번호,학과명,이름,번호 ORDER BY 팀) rn FROM T ) GROUP BY 학과번호, 학과명, 이름, 번호 ORDER BY 학과번호, 번호
이런거 원하시는 건가요?