반응형
이번 글에서는 지난번에 작성한
'오라클 - Row 단위 자료를 Column 단위로 변경하기'
https://determination.tistory.com/manage/newpost/30?type=post&returnURL=https%3A%2F%2Fdetermination.tistory.com%2Fentry%2F%25EC%2598%25A4%25EB%259D%25BC%25ED%2581%25B4-Row-%25EB%258B%25A8%25EC%259C%2584-%25EC%259E%2590%25EB%25A3%258C%25EB%25A5%25BC-Column-%25EB%258B%25A8%25EC%259C%2584%25EB%25A1%259C-%25EB%25B3%2580%25EA%25B2%25BD%25ED%2595%2598%25EA%25B8%25B0
determination.tistory.com
글을 보강하여,
ROW 단위를 COLUMN 단위로 변경하는 것은 물론,
COLUMN을 ROW 단위로 변경하는 것을 알아보고,
이들이 갖는 일정한 형식을 찾아서 정리해보려고 합니다.
ROW 단위 자료를 COLUMN 단위로.
- ROW 단위 자료를 COLUMN 단위로 변경할 때는 일정한 규칙이 있습니다.
- 규칙을 우선 정리하면 다음과 같습니다.(컬럼을 4개로 만들 때 기준)
- 조회하고자 하는 쿼리문에 'ROWNUM'을 붙인다.
- 'ROWNUM'을 인라인 뷰(Inline View)로 활용하기 위해 ALIAS를 부여한다.
- CEIL 함수를 사용해 ROWNUM을 4로 나눈 컬럼을 추가해 4개씩 동일한 번호를 부여한다.
- 2번까지 작성했던 함수를 인라인 뷰로 활용한다.
- 4개씩 묶인 데이터에 다시 순서를 부여한다.(MOD 함수 이용, 4로 나눈다.)
- MOD 함수로 나온 DATA SET(0, 1, 2, 3)과 DECODE 함수를 이용해 데이터를 각각 다른 행으로 분산한다.
- MAX 함수를 사용해 데이터를 보기좋게 정렬한다.
- 위의 규칙을 차례대로 예제를 통해 확인해보겠습니다.
- 조회하고자 하는 쿼리문에 'ROWNUM'을 붙인다.
- 'ROWNUM'을 인라인 뷰(Inline View)로 활용하기 위해 ALIAS를 부여한다.
1, 2 - CEIL 함수를 사용해 ROWNUM을 4로 나눈 컬럼을 추가해 4개씩 동일한 번호를 부여한다.
- 2번까지 작성했던 함수를 인라인 뷰로 활용한다.
3, 4 - 4개씩 묶인 데이터에 다시 순서를 부여한다.(MOD 함수 이용, 4로 나눈다.)
5 - MOD 함수로 나온 DATA SET(0, 1, 2, 3)과 DECODE 함수를 이용해 데이터를 각각 다른 행으로 분산한다.
6 - MAX 함수를 사용해 데이터를 보기좋게 정렬한다.
7, 최종 결과
COLUMN 단위를 ROW 단위로.
- COLUMN 단위 자료를 ROW단위로 변경할 때도 일정한 규칙이 있습니다.
- 규칙을 우선 정리하면 다음과 같습니다. (컬럼이 4개인 자료를 기준으로 할 때)
- FROM 절에 ROWNUM이 4인 행을 가진 DATA SET을 FROM 절에 기술해준다.(카타시안 곱)
- ROW 단위로 변경하고자 하는 COLUMN을 UNIQUE KEY로 만들어줘야 하기 때문에
DECODE 함수를 사용한다. - UNIQUE KEY로 만들어진 ROW에 해당하는 값을 가져오기 위해 DECODE 함수를 사용한다.
- 위의 규칙을 차례대로 예제를 통해 확인해보겠습니다.
- FROM 절에 ROWNUM이 4인 행을 가진 DATA SET을 FROM 절에 기술해준다.(카타시안 곱)
1, 실행문 1, 실행 결과(1) 1, 실행 결과(2) - ROW 단위로 변경하고자 하는 COLUMN을 UNIQUE KEY로 만들어줘야 하기 때문에
DECODE 함수를 사용한다.2 - UNIQUE KEY로 만들어진 ROW에 해당하는 값을 가져오기 위해 DECODE 함수를 사용한다.
3, 실행문 3, 실행 결과(1) 3, 실행 결과(2)
- FROM 절에 ROWNUM이 4인 행을 가진 DATA SET을 FROM 절에 기술해준다.(카타시안 곱)
반응형
'내가 공부하려고 올리는 > DB' 카테고리의 다른 글
MySQL - 자료형 헷갈리는 거 정리 (0) | 2022.04.21 |
---|---|
오라클 - CASE 함수 사용해보기 (0) | 2021.11.18 |
오라클 - 윈도우(Window) 함수 (0) | 2021.11.18 |
오라클 - 계층형 쿼리(Hierachical Select) 알아보기 (0) | 2021.11.17 |
오라클 - ROWNUM 쉽게 알아보기 (0) | 2021.11.17 |
댓글