데이터베이스

oracle 조인

늘근이 2014. 9. 11. 16:35

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