[Oracle SQL] 조인 연습 문제 풀이 (2)

yoonheekim·2022년 11월 4일
0

Oracle SQL

목록 보기
8/15

📚 Join - hr계정

1. 부서별 인원수를 출력하세요

[출력형식]
부서명 인원수

select d.department_name as 부서명, count(e.employee_id) as 인원수
from departments d, employees e
where d.department_id=e.department_id
group by d.department_name;

✏️ 1) 별칭을 표현하는 방식은 여러가지가 있지만 'AS 별칭' 형식이 가장 바람직하다.
그 이유는 라인이 많을 때 어떤 단어가 별칭인지 구별하기 쉽기 때문! 더불어 큰따옴표("")는 자바에서 SQL문을 구분할 때 큰따옴표로 처리하기 때문에 오류가 발생할 수 있다.

2. IT 부서에서 일하는 직원의 first_name, last_name, salary 를 출력하시요. 출력결과는 salary 가 낮은사람부터 출력하시오. 전체 결과는 아래 수행결과처럼 하나의 문자열로 결합되어서 나와야 하며 전체 결과가 하나의 컬럼으로 출력되도록 작성하세요.

select e.first_name||' '|| e.last_name ||'의 연봉은'|| e.salary ||'입니다.' as 결과
from employees e, departments d
where e.department_id=d.department_id
and d.department_name='IT'
order by e.salary desc;

✏️ 글자를 연결해주는 쌍파이프(||) 연산자 사용법에 미숙해서 풀지 못했던 문제.
쌍파이프 연산자는 문자열이나 컬럼을 연결해주는 역할을 한다! 콤마(,) 대신에 ||를 붙여준다고 생각하면 이해하기 쉽다.

3. 각 사원(employee)에 대해서 사번(employee_id), 이름(first_name), 업무명(job_title), 부서명(department_name)를 조회하시오. 단 도시명(city)이 ‘Seattle’인 지역(location)의 부서(department)에 근무하는 직원만 출력하시오.

select e.employee_id, e.first_name, j.job_title, d.department_name 
from employees e, departments d, locations l, jobs j
where e.department_id=d.department_id
and d.location_id=l.location_id
and e.job_id=j.job_id
and l.city='Seattle';

✏️ employees, departments, locations, jobs 테이블을 조인해서 풀어야하는 문제.
마지막 라인을 and like l.city '%Seattle'; 로 바꾸어도 똑같은 결과가 나온다~!

profile
개발 걸음마 떼기 👩🏻‍💻

0개의 댓글