실제, 데이터를 쿼리하다보면 세로로 만들어져 있지만, 데이터는 가로로 나타나게 해줘야만 하는 경우가 있습니다.
일반적으로는 프로그램을 이용해서, 데이터를 가로로 펼칩니다만... 데이터베이스에도 똑같은 일을 할 수가 있습니다.
또한, 가로로 펼쳐진 데이터를 가지고 다시 다른 정보와 또 조인하거나 어떤 데이터처리를 해야한다면,
계속해서 dbms call을 해야하는 상황이 발생할 것입니다.
그런 상황을 방지하기 위해서 dbms에서 데이터를 가로로 펼쳐봅시다.
아래의 예는 직원 테이블에서 부서별 소속 직원의 수를 구하는 쿼리입니다.
위의 경우처럼 가로로 펼치는 경우는 주로 GROUP BY가 선행되는 것이 대부분입니다.
물론, 아닌 경우도 있지만 말입니다(주로 집계관련 데이터인 경우에 해당합니다).
위의 쿼리를 수행하면 비즈니스에 해당하는 인원과 비즈니스에 해당하지 않는 직원이 GROUP BY되어서 나왔습니다. 이제 가로로 펼치는 일만 남았군요.
하나의 컬럼에 있는 값을 두개의 컬럼으로 나누는 방법은 아래와 같은 방법이면 됩니다.
위의 쿼리를 한번 수행해 보면, 데이터가 가로로 펼쳐져서 아래와 같이 나타나게 됩니다.
머, 이제 가로로 한개의 행으로 만드는거야 너무 쉽죠..
그냥 MAX,MIN아무거나 써서 붙이면 됩니다. 왜 아무거나 되냐하면 MAX나 MIN은 "비교가 가능한 값들 중에서"
라는 전제조건이 붙어 있기 때문에 비교가 불가능한 값인 NULL을 배제해 버리기 때문입니다.
따라서, 아래와 같은 쿼리면 세로의 줄을 가로로 펼치는 기본은 얼마든지 가능합니다.
'오라클 실무..' 카테고리의 다른 글
Tuning 기초 - 1 (1) | 2006.05.17 |
---|---|
NESTED LOOP, SORT MERGE, HASH JOIN (1) | 2006.05.17 |
SQL - 세로로 등록된 데이터를 가로로 펼쳐내기-1 (1) | 2006.05.17 |
SQL - 가로로 등록된 데이터를 세로로 펼쳐내기-2 (1) | 2006.05.17 |
SQL - 가로로 등록된 데이터를 세로로 펼쳐내기-1 (1) | 2006.05.17 |