본문 바로가기

개발/오라클

오라클 쿼리 연습 : GROUP BY와 함수 연습


오라클 쿼리 연습 : GROUP BY와 함수 연습 


SCOTT 테이블 문제


SCOTT 사용자의 테이블(BONUS, DEPT, EMP, SALGRADE)

BONUS 테이블의 컬럼 : ENAME, JOB, SAL, COMM

DEPT 테이블의 컬럼 : DEPTNO, DNAME, LOC

EMP 테이블의 컬럼 : EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO

SALGRADE 테이블의 컬럼 : GRADE, LOSAL, HISAL





1. 사원번호, 이름, 월급, 그리고 고용일부터 현재까지 월급누적(MONTHS_BETWEEN함수이용)을 출력하시오. (EMP 테이블, 함수)

(결과물)





2.이름에 "T"자가 들어가는 사원들의 급여의 합을 구하세요. (SUM)

(결과물)




1. 각 부서별 평균 급여를 구하세요. (GROUP BY) 

(결과물)


2.각 부서별 평균급여,전체급여,최저급여,최고급여을 구하여 평균급여가 많은 순으로 출력하세요.(GROUP BY)

(결과물)




3 : 부서별 사원수를 출력하세요 (GROUP BY)

(결과물)



4.업무별(JOB) 사원수를 출력하세요. (GROUP BY)

(결과물)





6. EMP 테이블에서 부서번호가 10인 사원수와 부서번호가 30인 사원수를 각 각 출력하세요.

    

(결과물1)                        (결과물2)



7. 각 사원 별 시급을 계산하여 부서번호, 사원이름, 시급을 출력하세요. 단, 한 달 근무일수는 20일, 하루 근무시간은 8시간이고 시급은 소수 두 번째 자리에서 반올림하세요. 부서별로 오름차순 정렬하고, 시급이 많은 순으로 출력하세요.

(결과물)



8. 각 부서별 평균 급여가 2000 이상이면 초과, 그렇지 않으면 미만을 출력하세요. 단, 부서 오름차순정렬 

(결과물)



9. 1981년 5월 31일 이후 입사자 중 커미션이 NULL이거나 0인 사원의 커미션은 500으로 그렇지 않으면 기존 커미션을 출력하세요.

(결과물)



10. 입사일로부터 지금까지 근무년수가 30년 이상 미만인 사원의 사원번호, 사원명, 입사일, 근무년수를 출력하세요. 단, 근무년수는 월을 기준으로 버립니다. (예:30.4년 = 30년, 30.7년=30년)

(결과물)





















======================================================================================================


HR(HUMAN RESOURCES) 테이블 문제


HR 사용자의 테이블(EMPLOYEES, DEPARTMENTS, LOCATIONS, COUNTRIES, REGIONS)

EMPLOYEES 테이블의 컬럼 : EMPLOYEE_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB_ID, SALARY, COMMISSION_PCT, MANAGER_ID, DEPARTMENT_ID

DEPARTMENTS 테이블의 컬럼 : DEPARTMENT_ID, DEPARTMENT_NAME, MANAGER_ID, LOCATION_ID

LOCATIONS 테이블의 컬럼 : LOCATION_ID, STREET_ADDRESS, POSTAL_CODE, CITY, STATE_PROVINCE, COUNTRY_ID

COUNTRIES 테이블의 컬럼 : COUNTRY_ID, COUNTRY_NAME, REGION_ID

REGIONS 테이블의 컬럼 : REGION_ID, REGION_NAME



 HR 테이블에서 테스트 하세요. HR 스키마 구조 보기(링크)



1. EMPLOYEES 테이블에서 JOB_ID별 직원의 수(COUNT) 출력하되, 10명 이상인 경우만 출력하세요.(GROUP BY)

(결과물)



2. EMPLOYEES 테이블에서 JOB_ID별 직원의 수(COUNT) 출력하되, 10명 이상인 경우만 출력하세요. 단, JOB_ID가 'CLERK'으로 끝나는 경우는 제외시킵니다..

(결과물)



3. EMPLOYEES 테이블에서 JOB_ID별 직원의 평균 급여 출력하되, 5000달러 이상만 출력하세요.

(결과물)



4. employees 테이블에서 JOB_ID별 직원의 평균 급여 출력하되, 5000달러 이상만 출력하고, 직무(JOB_ID)가 'MAN'으로 끝나느 경우만 출력하세요.

(결과물)



5. EMPLOYEES 테이블에서 입사년도별 직원의 평균 급여 출력하되, 2003년대인 경우만 출력하세요.

(결과물)