카테고리 없음

SQL 5장 연습문제 풀이

webpage 2024. 11. 4. 17:52

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;