DBMS/Summary

카운터 함수 이용

gandus 2010. 4. 21. 11:47

/*
##  이 값은 comm에서 NULL 을 제외한 평균을 구한다.
select avg(comm) from emp;

## 하지만 함수내의 함수를 이용하면 값이 달라진다.
## null 값도 갯수에 포함하여 평균을 구함.
select avg(ifnull(comm , 0)) from emp;
*/


##  커미션을 받는 사람은 총 몇명인가??
/*
select count(comm) from emp;
*/

## 30번 부서에서 커미션을 받는 사람과 받지않는 사람은 각각 몇명인가???
/*
select count(comm) as comm,  count(*) - count(comm) as nocomm from emp
where deptno = 30;
*/

## 1891년도에 입사한 사원중에서 커미션을받는 사람과 받지 않는 사람은 ??
/*
select count(comm) as comm, count(*) - count(comm) as nocomm from emp
where hiredate like '1981%';
*/

## 회사에서 커미션을 받는 사람을 기준으로 평균 커미션은??
/*
select avg(comm) from emp
where comm is not null;
*/

## 회사에게 월 커미션으로 나가는 평균 금액은??
/*
select avg( ifnull(comm, 0)) from emp;
*/






 카운터 함수는 NULL 은 갯수를 세지 않는다


 NULL은 카운터에서 제외 


SELECT COUNT(
comm)

         FROM emp

         WHERE deptno = 30;


// 이 소스는 커미션 받는 사람중에 30번 부서에 일하는 사람을 구하는것이다.



select count (distinct deptno) from emp    //  중복된 값은 셈을 하지 않는다.