반응형
--1. 급여가 많은 순으로 출력하기
SELECT *
FROM EMP
ORDER BY SAL DESC;
--2. 각 부서의 사람 수 구하기
SELECT DEPTNO, COUNT(*)
FROM EMP
GROUP BY DEPTNO;
--3. salesman의 평균 급여 구하기
SELECT AVG(SAL)
FROM EMP
WHERE JOB = 'SALESMAN';
--4. 커미션(COMM)을 받는 사람의 수 구하기
SELECT COUNT(*)
FROM EMP
WHERE COMM IS NOT NULL;
--5. 커미션(COMM)을 받는 사람들의 커미션 평균 하기
SELECT AVG(COMM)
FROM EMP
WHERE COMM IS NOT NULL;
--6.사원번호가 77로 시작하는 사람 구하기
SELECT ENAME
FROM EMP
WHERE EMPNO LIKE '77%';
--7. 부서 인원이 가장 적은 곳의 위치 구하기
SELECT LOC
FROM DEPT
WHERE DEPTNO IN (
SELECT DEPTNO
FROM (
SELECT DEPTNO, COUNT(*)AS CNT
FROM EMP
GROUP BY DEPTNO
ORDER BY CNT
)
WHERE ROWNUM = 1
);
--8. 본인의 상사가 'BLAKE'인 사람 구하기
SELECT *
FROM EMP E
INNER JOIN EMP E2 ON E.MGR = E2.EMPNO
WHERE E2.ENAME = 'BLAKE';
--9. KING을 상사로 두고 있는 사람 구하기
SELECT *
FROM EMP E
INNER JOIN EMP E2 ON E.MGR = E2.EMPNO
WHERE E2.ENAME = 'KING';
--10. SALEMAN이 가장 많은 부서의 지역 구하기
SELECT LOC
FROM DEPT
WHERE DEPTNO IN (
SELECT DEPTNO
FROM (
SELECT DEPTNO, COUNT(*) AS A
FROM EMP
WHERE JOB = 'SALESMAN'
GROUP BY DEPTNO
ORDER BY A DESC
)
WHERE ROWNUM = 1
);
--11. 전체 평균보다 높은 급여를 받는 사람들 구하기
SELECT *
FROM EMP
WHERE SAL > (SELECT AVG(SAL)
FROM EMP);
--12. 부서 평균 급여가 가장 적은 곳의 위치 구하기
SELECT LOC
FROM DEPT
WHERE DEPTNO IN (
SELECT DEPTNO
FROM (
SELECT DEPTNO, AVG(SAL)AS A
FROM EMP
GROUP BY DEPTNO
ORDER BY A)
WHERE ROWNUM = 1
);
--13.각 사람들의 급여 등급
SELECT E.*, S.GRADE
FROM EMP E
INNER JOIN SALGRADE S ON E.SAL BETWEEN S.LOSAL AND S.HISAL;
SELECT * FROM EMP;
SELECT * FROM DEPT;
SELECT * FROM SALGRADE;
반응형
'Database' 카테고리의 다른 글
[오라클DB] 연습문제2 (0) | 2023.03.27 |
---|---|
[오라클DB] CASE & DECODE (1) | 2023.03.27 |
[오라클DB 숙제] 3월 24일 실습문제1 (0) | 2023.03.24 |
[MySQL] 로그인하기 - DB & 자바 연결 (0) | 2023.03.23 |
[오라클DB] 문자 함수 (0) | 2023.03.23 |