Do it! 오라클로 배우는 데이터베이스 입문 연습문제 07

조예빈·2024년 4월 3일
0

Oracle

목록 보기
5/26
post-custom-banner

01

--평균급여, 최고급여, 최저급여, 사원수
--평균급여는 소수점 제외, 각 부서별로 출력
SELECT DEPTNO, TRUNC(AVG(SAL),0) AS AVG_SAL, MAX(SAL) AS AVG_SAL, MIN(SAL) AS AVG_MIN, COUNT(DEPTNO) AS CNT
FROM EMP
GROUP BY DEPTNO;

02

--같은 직책(JOB)에 종사하는 사원이 3명 이상인 직책과 인원수
SELECT JOB, COUNT(*)
FROM EMP
GROUP BY JOB
HAVING COUNT(JOB)>=3;

03

--사원들의 입사 연도(HIRE_YEAR)를 기준으로 부서별로 몇 명이 입사했는지 출력
SELECT
SUBSTR(HIREDATE,1,4) AS HIRE_YEAR, DEPTNO, COUNT(*) AS CNT
FROM EMP
GROUP BY SUBSTR(HIREDATE,1,4), DEPTNO;

04

--추가 수당(COMM)을 받는 사원 수와 받지 않는 사원 수
SELECT
NVL2(COMM,'O','X') AS EXIST_COMM, COUNT(*) AS CNT
FROM EMP
GROUP BY NVL2(COMM, 'O', 'X');

05

-- 각 부서의 입사 연도 별 사원 수, 최고 급여, 급여 합, 평균 급여를 출력하고 각 부서별 소계와 총계를 출력
SELECT
DEPTNO, SUBSTR(HIREDATE,1,4) AS HIRE_YEAR, COUNT(*) AS CNT,
MAX(SAL) MAX_SAL, SUM(SAL) AS SUM_SAL, AVG(SAL) AS AVG_SAL
FROM EMP
GROUP BY ROLLUP(DEPTNO, SUBSTR(HIREDATE,1,4));

profile
컴퓨터가 이해하는 코드는 바보도 작성할 수 있다. 사람이 이해하도록 작성하는 프로그래머가 진정한 실력자다. -마틴 파울러
post-custom-banner

0개의 댓글