▶문제1
월급이 가장 적은 사람의 fist_name, last_name 을 출력하라
1
2
3
4
|
SELECT e.FIRST_NAME , e.LAST_NAME
FROM EMPLOYEES e
WHERE e.SALARY = (SELECT min(salary) FROM EMPLOYEES e)
;
|
cs |
▶문제2
월급이 가장 많은 사람의 first_name, last_name, job_title을 출력하라
1
2
3
4
5
|
SELECT e.FIRST_NAME, e.LAST_NAME , j.JOB_TITLE
FROM EMPLOYEES e
LEFT OUTER JOIN JOBS j ON e.JOB_ID = j.JOB_ID
WHERE e.SALARY = (SELECT max(SALARY) FROM EMPLOYEES e)
;
|
cs |
▶문제3
EMPLOYEES 테이블에서 Kochhar의 급여보다 많은 사원의 정보를 사원번호, 이름, 담당업무(job_id), 급여를 출력하라
1
2
3
4
5
6
|
SELECT EMPLOYEE_ID , FIRST_NAME , JOB_ID , SALARY
FROM EMPLOYEES e
WHERE SALARY > (SELECT SALARY
FROM EMPLOYEES e2
WHERE LAST_NAME = 'Kochhar')
;
|
cs |
▶문제4
EMPLOYEES 테이블에서 급여의 평균보다 적은 사원의 사원번호, 이름, 담당업무, 급여, 부서번호를 출력하라.
1
2
3
4
|
SELECT e.EMPLOYEE_ID , e.FIRST_NAME , e.JOB_ID , e.SALARY , e.DEPARTMENT_ID
FROM EMPLOYEES e
WHERE SALARY < (SELECT avg(SALARY) FROM EMPLOYEES e2)
;
|
cs |
▶문제5
EMPLOYEES 테이블에서 100번 부서의 최소 급여보다 최소 급여가 많은 다른 모든 부서(department_id), 최소급여(salary)를 출력하라
1
2
3
4
5
6
7
|
SELECT DEPARTMENT_ID , min(SALARY)
FROM EMPLOYEES e
GROUP BY DEPARTMENT_ID
HAVING min(SALARY) > (SELECT min(SALARY)
FROM EMPLOYEES e
WHERE DEPARTMENT_ID = 100)
;
|
cs |
▶문제6
EMPLOYEES 테이블에서 사원 번호가 123인 사원의 직업과 같고, 사원번호가 192인 사원의 급여보다 많은 사원의 사원번호, 이름, 직업(job_id), 급여를 출력하라
1
2
3
4
5
6
7
8
9
|
SELECT EMPLOYEE_ID , FIRST_NAME , JOB_ID , SALARY
FROM EMPLOYEES e
WHERE JOB_ID = (SELECT JOB_ID
FROM EMPLOYEES e
WHERE EMPLOYEE_ID = 123)
AND SALARY > (SELECT SALARY
FROM EMPLOYEES e
WHERE EMPLOYEE_ID = 129)
;
|
cs |
▶문제7
EMPLOYEES 테이블에서 50번 부서의 최소 급여를 받는 사원보다 많은 급여를 받는 사원의 사원번호, 이름, 업무(job_id), 입사일자, 급여, 부서번호를 출력하라. 단, 50번 부서는 제외
1
2
3
4
5
6
7
|
SELECT EMPLOYEE_ID , FIRST_NAME , JOB_ID , HIRE_DATE , SALARY , DEPARTMENT_ID
FROM EMPLOYEES e
WHERE SALARY > (SELECT min(SALARY)
FROM EMPLOYEES e
WHERE DEPARTMENT_ID = 50)
AND NOT DEPARTMENT_ID = 50
;
|
cs |
▶문제8
EMPLOYEES 테이블에서 50번 부서의 최대 급여를 받는 사원보다 많은 급여를 받는 사원의 사원번호, 이름, 업무(job_id), 입사일자, 급여, 부서번호를 출력하라. 단, 50번 부서는 제외
1
2
3
4
5
6
7
|
SELECT EMPLOYEE_ID , FIRST_NAME , JOB_ID , HIRE_DATE , SALARY , DEPARTMENT_ID
FROM EMPLOYEES e
WHERE SALARY > (SELECT max(SALARY)
FROM EMPLOYEES e
WHERE DEPARTMENT_ID = 50)
AND NOT DEPARTMENT_ID = 50
;
|
cs |
▶문제9
EMPLOYEES 테이블에서 가장 많은 사원이 속해 있는 부서 번호와, 사원수를 출력하라.
1
2
3
4
5
6
7
|
SELECT DEPARTMENT_ID , count(SALARY)
FROM EMPLOYEES e
GROUP BY DEPARTMENT_ID
HAVING count(DEPARTMENT_ID ) = ( SELECT max(count(DEPARTMENT_ID))
FROM EMPLOYEES e
GROUP BY DEPARTMENT_ID)
;
|
cs |
'오답노트 > DBMS' 카테고리의 다른 글
MySQL_서브쿼리(SubQuery) ,UPDATE,INSERT 연습문제 (0) | 2022.05.20 |
---|---|
MySQL 연습문제(JOIN) (0) | 2022.05.18 |
MySQL 연습문제(WHERE) (0) | 2022.05.16 |
데이터베이스(Oracle)_조인(JOIN) 연습문제 (0) | 2022.04.15 |
데이터베이스(Oracle)_Select 연습문제 (0) | 2022.04.08 |