SQL 5장 연습문제 풀이
10.
각 부서에 대해서 --> 부서번호 혹은 부서이름 별로 묶어라
찾는 항목 : 부서이름, 부서위치, 사원 수, 부서내 사원의 평균급여
부서이름 -> departments 테이블
나머지 -> employees 테이블
select d.department_name, d.location_id, count(*), round(avg(salary),2)
from employees e, departments d
where e.department_id = d.department_id
group by d.department_name, d.location_id;
9.
찾는 항목 : 관리자 사번(manager_id), 최저급여:min(salary)
조건 : 1.관리자가 없는 사원 제외, 2.최저 급여가 6000 미만인 그룹 제외
1-->일반조건-->where, 2-->그룹에 적용하는 조건--> having
select manager_id, min(salary) from employees
where manager_id is not null
group by manager_id
having min(salary) > 6000
order by min(salary) desc;
8.
select max(salary) - min(salary) "차 액" from employees;
7.
관리자의 수를 찾아라. manager_id(관리자의 사번)이므로 manager_id의 갯수
를 세라 --> 동일한 manager_id는 제외 : distinct
select count(distinct manager_id) from employees;
6.
동일한 일을 하는 사원 수를 찾아라.
-> 업무코드를 기준으로 그룹을 묶어라.
select job_id, count(*) from employees group by job_id;
5.
4번 문제를 수정해서 업무 유형별로 출력해라 -> 업무 유형별로 그룹
select job_id, max(salary) "최고액", min(salary) "최저액",
sum(salary) "총 액", avg(salary) "평 균"
from employees
group by job_id;
4.
최고급여:max(salary), 최저급여:min(salary),총액:sum(salary),평균:avg(salary)
select max(salary) "최고액", min(salary) "최저액",
sum(salary) "총 액", avg(salary) "평 균"
from employees;