1. 관리자 아이디가 "100" 인 사원들의 "평균" 임금을 출력하시오.
2. 부서명이 "Accounting"인 사원들의 이름 명단(first_name 과 last_name 합쳐서)을 내림차순으로 출력하시오.
3. 부서가 "Finance"인 사원 중에서 최고 급여를 받는 사원(들)의 이름과 급여를 출력하시오.
결과 참고) Nancy Greenberg 12008
3번 Where 조건문에서의 Hint)
부서 테이블에서 Finance 에 해당하는 부서 아이디를 구하는 select문을 작성한다.
위의 구문을 활용하여 사원 테이블에서 부서의 최고 연봉을 구하는 select문을 작성한다.
위의 조건만으로는 값이 "결과 참고"와 같이 출력되지 않고 중복될 수 있다.
이것을 막기 위해서는 아래의 조건을 "동시에(AND)" 만족하도록 위의 조건들과 더불어
부서 테이블에서 Finance 에 해당하는 부서 아이디를 구하는 select문을 재활용한다.
- 정답 :
1. 관리자 아이디가 "100" 인 사원들의 "평균" 임금을 출력하시오.
SELECT AVG(salary)
FROM employees
WHERE manager_id=100;
2. 부서명이 "Accounting"인 사원들의
이름 명단(first_name 과 last_name 합쳐서)을
내림차순으로 출력하시오.
SELECT (first_name || ' ' || last_name) "사원명"
FROM employees
WHERE department_id = (
SELECT department_id
FROM departments
WHERE department_name
= 'Accounting'
)
ORDER BY first_name DESC;
3. 부서가 "Finance"인 사원 중에서 최고 급여를 받는 사원(들)의
이름과 급여를 출력하시오.
SELECT (first_name || ' ' || last_name) "사원명",
salary "급여"
FROM employees
WHERE department_id =(
SELECT department_id
FROM departments
WHERE
department_name
='Finance'
) AND salary =(
SELECT max(salary)
FROM employees
WHERE
department_id = (
SELECT department_id
FROM departments
WHERE
department_name
='Finance'
)
);
SELECT max(salary)
FROM employees
WHERE department_id = (
SELECT department_id
FROM departments
WHERE
department_name
='Finance'
);
'DB' 카테고리의 다른 글
SQL명령어 (SELECT 의 SUBQUERY) (0) | 2013.07.30 |
---|---|
SQL 명령어(단일함수)[미완] (0) | 2013.07.18 |
그룹 함수(GROUP BY) (0) | 2013.07.17 |
SQL명령어 (WHERE) (0) | 2013.07.12 |
SQL명령어 (SELECT) (0) | 2013.07.12 |