select avg(commission_pct) from employees
--sum()은 값이 있는 애들만 모두 더한값 / 전체인원수
--count(*) 는 null도 카운트한다. 따라서 위랑 아래랑 결과가 다를수 있다.
--count(*)는 조심해야한다!!
select sum(commission_pct) / count(*) from employees
--최고 연봉을 받는 사람은
select max(salary) from employees
--최소연봉을 받는사람은
select min(salary) from employee
--각 부서별로 최고연봉은?
select department_id, max(salary)
from employees
group by department_id
--그룹 평균 연봉이 5000이상은 부서는
--이렇게는 안된다. 그룹함수는 허가되지 않는다고 뜬다. group by는 having 절을 써야한다.
select department_id, trunc(avg(salary),2)
from employees
where avg(salary)>=5000
group by department_id
order by department_id
--이렇게 쓰면 된다. having절은 그룹을 걸러낼때 쓰는거다!
select department_id, trunc(avg(salary),2)
from employees
group by department_id
having avg(salary)>=5000
order by department_id
--각 부서별 평균연봉은 다만 5000이상인데만 골라내려면
select d.department_id, d.department_name, avg(e.salary)
from employees e, departments d
where e.department_id = d.department_id(+)
group by d.department_name, d.department_id
having avg(e.salary) >=5000
order by d.department_id
'데이터베이스' 카테고리의 다른 글
인덱스에 대한 설명 (0) | 2014.10.16 |
---|---|
oracle distinct (0) | 2014.09.11 |
oracle 조인 (0) | 2014.09.11 |
oracle 날짜함수 (0) | 2014.09.11 |
oracle 숫자함수 사용하기 (0) | 2014.09.11 |