-- 런던 지역에 근무하는 사원의 이름, 급여, 부서코드 조회
SELECT a.first_name, salary, a.department_id
FROM employees a, departments b
WHERE a.department_id = b.department_id
and b.location_id = (SELECT location_id
FROM locations
WHERE lower(city) = 'london');
select first_name
FROM employees
WHERE department_id = 40;
-- 자신의 상관이 kelly 인 사원의 이름과 급여 조회
SELECT first_name, salary
FROM employees
WHERE manager_id = (SELECT employee_id
FROM employees
WHERE lower(first_name) = 'adam');
-- 유럽 대륙에 근무하는 사원의 이름과 급여 조회
SELECT first_name, salary
FROM employees a, departments b, locations c, countries d
WHERE a.department_id = b.department_id
and b.location_id = c.location_id
and c.country_id = d.country_id
and d.region_id = (SELECT region_id
FROM regions
WHERE region_name ='Europe');
-- 사원들의 평균 급여보다 더 많은 급여를 받는 사원 이름, 급여 조회
SELECT first_name, salary
FROM employees
WHERE salary > (SELECT avg(salary)
FROM employees);
-- 부서별 이란 말이 있으면 Group by 가 들어간다.
-- 부서별 가장 많은 급여를 받는 사원 이름, 급여 조회
-- 다중행 서브 쿼리는 (동등)비교 연산자 사용하면 오류가 발생한다.
SELECT first_name, salary, department_id
FROM employees
WHERE (salary,department_id) in (SELECT max(salary),department_id
FROM employees
Group by department_id);
-- 50번 부서의 모든 사원들보다 많은 급여를 받는 사원의 이름, 급여 조회
SELECT first_name, salary
FROM employees
WHERE salary > all (SELECT salary
FROM employees
WHERE department_id = 50);
-- 50번 부서의 사원중 어느 한 사원보다 많은 급여를 받는 사원의 이름, 급여 조회
SELECT first_name, salary
FROM employees
WHERE salary > any (SELECT salary
FROM employees
WHERE department_id = 50);
-- 4월에 입사한 모든 입사자들의 급여보다 많이 받은 사원의 이름, 급여 조회
SELECT first_name, salary, hire_date
FROM employees
WHERE salary > all (SELECT salary
FROM employees
WHERE hire_date like '%/04/%');