Data base

쿼리 문제 실습2

연93 2022. 11. 3. 12:36
-- 1. ALLEN 과 부서가 같은 사원들의 사원명, 입사일을 출력(급여 내림차순 정렬)
SELECT ENAME, HIREDATE FROM EMP
WHERE DEPTNO = (SELECT DEPTNO FROM EMP WHERE ENAME = 'ALLEN')
ORDER BY SAL DESC;

-- 2. 가장 높은 급여를 받는 사원보다 입사일이 늦은 사원의 이름, 입사일을 출력
SELECT ename, hiredate FROM EMP WHERE
                        hiredate > (
                                    SELECT hiredate FROM EMP WHERE 
                                                                SAL = ( SELECT MAX(SAL) FROM EMP )
                                    );
                                    
-- 3. 이름에 'T' 자가 들어가는 사원들의 급여의 합을 구하세요. (LIKE 사용)
SELECT SUM(SAL) FROM EMP WHERE ENAME LIKE '%T%';

-- 4. 모든 사원의 평균급여를 구하세요. 소수 둘째자리 반올림표현
SELECT ROUND(AVG(SAL), 2) FROM EMP;

-- 5. 각 부서별 평균 급여를 구하세요. 소수 둘째자리 반올림표현 (GROUP BY)
SELECT DEPTNO, ROUND(AVG(SAL), 2) 부서평균급여 FROM EMP
GROUP BY DEPTNO;

-- 6. 각 부서별 평균급여, 전체급여, 최고급여, 최저급여를 구하여 평균급여가 높은 순으로 출력. 평균은 소수 둘째자리 반올림표현
SELECT ROUND(AVG(SAL), 2), SUM(SAL), MAX(SAL), MIN(SAL)
FROM EMP
GROUP BY DEPTNO
ORDER BY AVG(SAL) DESC;

-- 7. 20번 부서의 최고 급여보다 많은 사원의 사원번호, 사원명, 급여를 출력
SELECT EMPNO, ENAME, SAL
FROM EMP
WHERE SAL > (SELECT MAX(SAL) FROM EMP WHERE DEPTNO = 20);

-- 8. SMITH 와 같은 부서에 속한 사원들의 평균급여보다 큰  급여를 받는 모든 사원의 사원명, 급여를 출력
SELECT ENAME, SAL
FROM EMP
WHERE SAL >
        (SELECT AVG(SAL) FROM EMP WHERE DEPTNO = 
                                                (SELECT DEPTNO FROM EMP WHERE ENAME = 'SMITH')
        );
        
-- 9. 회사내의 최소급여와 최대급여의 차이를 구하세요.       
SELECT MAX(SAL) - MIN(SAL) FROM EMP;

-- 10. SCOTT 의 급여에서 1000 을 뺀 급여보다 적게 받는 사원의 이름, 급여를 출력.
SELECT ENAME, SAL
FROM EMP
WHERE SAL < (SELECT SAL-1000 FROM EMP WHERE ENAME = 'SCOTT');

-- 11. JOB이 MANAGER인 사원들 중 최소급여를 받는 사원보다 급여가 적은 사원이름, 급여를 출력
SELECT ENAME, SAL
FROM EMP
WHERE SAL <
            (SELECT MIN(SAL) FROM EMP WHERE JOB = 'MANAGER');
            
-- 12. 이름이 S로 시작하고 마지막글자가 H인 사원의 이름을 출력
SELECT ENAME
FROM EMP
WHERE ENAME LIKE 'S%H';

-- 13. WARD 가 소속된 부서 사원들의 평균 급여보다, 급여가 높은 사원의 이름,급여를 출력.
SELECT ENAME, SAL
FROM EMP
WHERE SAL > 
            (SELECT AVG(SAL) FROM EMP WHERE DEPTNO = 
                                                     (SELECT DEPTNO FROM EMP WHERE ename = 'WARD')
                                                     
            );

-- 14-1. EMP테이블의 모든 사원수를 출력
SELECT COUNT(*) FROM EMP;
-- 14-2. 부서별 사원수를 출력
SELECT DEPTNO, COUNT(*) FROM EMP
GROUP BY DEPTNO;

-- 15. 업무별(JOB) 사원수를 출력
SELECT JOB, COUNT(*) FROM EMP
GROUP BY JOB;

-- 16. 최소급여를 받는 사원과 같은 부서의 모든 사원명을 출력
SELECT ENAME
FROM EMP
WHERE DEPTNO = 
                (SELECT DEPTNO FROM EMP WHERE SAL = 
                                                    (SELECT MIN(SAL) FROM EMP)
                );

'Data base' 카테고리의 다른 글

쿼리 문제 실습 4  (0) 2022.11.03
쿼리 문제 실습3  (0) 2022.11.03
쿼리 문제 실습 1  (0) 2022.11.03
INSERT 개념만  (0) 2022.10.17
SELECT  (0) 2022.10.17