PURPOSE
---------
특정 범위를 설정하고 그 범위 사이에 있는 salary를 가진 사람의 count를
구하려면 다음과 같이 한다.
Explanation
-----------
직원의 급여 테이블에서 특정 범위의 급여를 받는 사람이 몇 명인지
나타내주는 SQL을 DECODE, COUNT 함수를 이용하여 구현하기로 한다.
Example
--------
SQL> SELECT count(decode(sign(sal-4999), 1, sal)) "5000 - ",
count(decode(sign(sal-5000), -1,
decode(sign(sal-3999), 1, sal))) "4000-4999",
count(decode(sign(sal-4000), -1,
decode(sign(sal-2999), 1, sal))) "3000-3999",
count(decode(sign(sal-3000),-1,
decode(sign(sal-1999),1,sal))) "2000-2999",
count(decode(sign(sal-2000),-1,
decode(sign(sal- 999),1,sal))) "1000-1999",
count(decode(sign(sal-1000),-1,sal)) "- 1000"
FROM emp;
5000 - 4000-4999 3000-3999 2000-2999 1000-1999 - 1000
-------- --------- --------- --------- --------- --------
1 0 2 3 6 2
---------
특정 범위를 설정하고 그 범위 사이에 있는 salary를 가진 사람의 count를
구하려면 다음과 같이 한다.
Explanation
-----------
직원의 급여 테이블에서 특정 범위의 급여를 받는 사람이 몇 명인지
나타내주는 SQL을 DECODE, COUNT 함수를 이용하여 구현하기로 한다.
Example
--------
SQL> SELECT count(decode(sign(sal-4999), 1, sal)) "5000 - ",
count(decode(sign(sal-5000), -1,
decode(sign(sal-3999), 1, sal))) "4000-4999",
count(decode(sign(sal-4000), -1,
decode(sign(sal-2999), 1, sal))) "3000-3999",
count(decode(sign(sal-3000),-1,
decode(sign(sal-1999),1,sal))) "2000-2999",
count(decode(sign(sal-2000),-1,
decode(sign(sal- 999),1,sal))) "1000-1999",
count(decode(sign(sal-1000),-1,sal)) "- 1000"
FROM emp;
5000 - 4000-4999 3000-3999 2000-2999 1000-1999 - 1000
-------- --------- --------- --------- --------- --------
1 0 2 3 6 2
'프로그래밍 > DB' 카테고리의 다른 글
DBMS_LOCK 사용 시 에러 (0) | 2008.01.10 |
---|---|
[펌]SQL*plus FAQ 및 TIPS (0) | 2008.01.09 |
[펌]DECODE를 이용하여 원치 않는 자료를 없애는 방법 (0) | 2008.01.09 |
[펌]DECODE 이용사례 : RANGE에 따른 값으로 DECODE FUNCTION 이용하기 (0) | 2008.01.09 |
[펌]TABLE의 RECORD 건수를 확인하는 방법 (0) | 2008.01.09 |