| CODE | WDATE | COUNT |
| 1 | 100 | 5 |
| 1 | 101 | 5 |
| 1 | 102 | 3 |
| 2 | 101 | 1 |
| 2 | 102 | 2 |
| 3 | 104 | 1 |
| 3 | 105 | 6 |
| 4 | 101 | 2 |
| 4 | 102 | 3 |
이런 형태의 데이터가 있다고 칩니다.
wdate라는건 아무렇게나 입력했지만, 날짜라고 칩니다.
이런 형태의 데이터를
날짜 / 코드1 / 코드2 / 코드3 / 코드4
100
101
102
이런 형태로 데이터를 뽑고 싶을 경우가 있습니다.
이런 경우엔 DECODE 기능을 이용해 형태를 재 정의를 할 수 있습니다.
select wdate,
sum(decode (code, 1, count)) as code1,
sum(decode (code, 2, count)) as code2,
sum(decode (code, 3, count)) as code3,
sum(decode (code, 4, count)) as code4
from test
group by wdate
order by wdate;
sum(decode (code, 1, count)) as code1,
sum(decode (code, 2, count)) as code2,
sum(decode (code, 3, count)) as code3,
sum(decode (code, 4, count)) as code4
from test
group by wdate
order by wdate;
decode는 삼항연산자와 비슷한 느낌으로 사용하면 됩니다.
code가 1일경우 count는 code1로 보내고 , 2일경우는 code2로 보냅니다.
그리고 group by 를 이용해 월별 합산을 만들 수 있습니다.
결과는 아래와 같습니다.
| WDATE | CODE1 | CODE2 | CODE3 | CODE4 |
| 100 | 5 | |||
| 101 | 5 | 1 | 2 | |
| 102 | 3 | 2 | 3 | |
| 104 | 1 | 2 | ||
| 105 | 6 |
'ORACLE' 카테고리의 다른 글
| to_char 를 사용한 후 생기는 공백 (0) | 2010/07/15 |
|---|---|
| decode를 이용하여 통계비스무리한거 만들어보기 (0) | 2010/07/14 |
| 오라클 인덱스들 테이블 스페이스 한번에 모두 변경하기 (0) | 2010/07/05 |
| 오라클 xmlagg를 이용핸 row 합치기 (0) | 2010/07/02 |
