day DBMS 02 예문들

JTH·2023년 2월 10일
0

gb_jth

목록 보기
38/56

--사원수가 10명 이상인 부서를 조회 HAVING .... >=<
-- 단, 부서가 null인 사람은 제외

SELECT 	DEPARTMENT_ID , COUNT(*) 
FROM 	EMPLOYEES e
WHERE 	DEPARTMENT_ID IS NOT NULL 
GROUP	BY	DEPARTMENT_ID
HAVING 	COUNT(*) > = 10
;

-- 문제1) EMPLOYEES 테이블에서 job_id가 'SA'로 시작하는
-- 사람에 대하여
-- 급여의 평균, 최고액, 최저액, 합계를 구하여 출력하여라.

SELECT 	AVG(SALARY), MAX(SALARY), MIN(SALARY) , SUM(SALARY) 
FROM 	EMPLOYEES e
WHERE  	JOB_ID LIKE 'SA%'
;

-- 문제2) EMPLOYEES 테이블에 등록되어 있는 인원수,
-- 커미션이 NULL이 아닌 인원수, 연봉평균,
-- 등록되어 있는 부서의 수를 구하여 출력하라.???

SELECT 	COUNT(*) , COUNT(COMMISSION_PCT) , AVG(SALARY),  COUNT(DISTINCT DEPARTMENT_ID)
FROM 	EMPLOYEES e 
;

-- 문제3) EMPLOYEES 테이블에서 부서별로 인원수,
-- 평균 급여, 최저급여, 최고 급여, 급여의 합을 구하여 출력하라.

SELECT 	DEPARTMENT_ID ,COUNT(*) , AVG(SALARY), MIN(SALARY), MAX(SALARY), SUM(SALARY)  
FROM 	EMPLOYEES e 
GROUP 	BY DEPARTMENT_ID 
;

-- 문제4) EMPLOYEES 테이블에서 각 부서별 인원수,
-- 급여의 평균, 최저 급여, 최고 급여, 급여의합을
-- 급여합이 많은 사람순으로 출력 ????????????

SELECT  DEPARTMENT_ID , COUNT(*) ,  AVG(SALARY), MIN(SALARY), MAX(SALARY) MAXSAL  , SUM(SALARY)  
FROM 	EMPLOYEES e 
GROUP	BY	DEPARTMENT_ID 
ORDER 	BY 	MAXSAL DESC 
;

-- 문제5) EMPLOYEES 테이블에서 부서별, 업무별 그룹하여
-- 결과를 부서번호,
-- 업무, 인원수, 급여의 평균, 급여의 합을 구하여 출력하여라.

SELECT 	DEPARTMENT_ID , JOB_ID , COUNT(*) , SUM(SALARY), AVG(SALARY)
FROM 	EMPLOYEES e 
GROUP	BY	DEPARTMENT_ID ,JOB_ID 
;

-- 문제6) EMPLOYEES 테이블에서 부서 인원이 4명보다
-- 많은 부서의 부서번호,
-- 인원수, 급여의 합을 구하여 출력하여라

SELECT 	DEPARTMENT_ID , COUNT(*) , SUM(SALARY)  
FROM 	EMPLOYEES e 
GROUP	BY	DEPARTMENT_ID 
HAVING	COUNT(*)>4 
;

-- 문제7) EMPLOYEES 테이블에서 급여가 최대 10000이상인 부서에
-- 대해서 부서번호,
-- 평균 급여, 급여의 합을 구하여 출력하여라.

SELECT 	DEPARTMENT_ID , COUNT(*) , AVG(SALARY) , SUM(SALARY) , MAX(SALARY) 
FROM 	EMPLOYEES e 
GROUP	BY	DEPARTMENT_ID 
HAVING	MAX(SALARY) >= 10000 
;

-- 문제8) EMPLOYEES 테이블에서 업무별 급여의 평균이 10000
-- 이상인 업무에 대해서 업무명,
-- 평균 급여, 급여의 합을 구하여 출력하라.

SELECT  JOB_ID , AVG(SALARY), SUM(SALARY)  
FROM 	EMPLOYEES e 
GROUP	BY	JOB_ID 
HAVING 	AVG(SALARY) >= 10000 
;

-- 문제9) EMPLOYEES 테이블에서 전체 월급이 10000을 초과하는
-- 각 업무에 대해서 업무와 월급여 합계를 출력하라.
-- 단 판매원(JOBID)(SA)은 제외하고 월 급여 합계로 정렬(내림차순)하라.

SELECT 	JOB_ID , SUM(SALARY) 
FROM 	EMPLOYEES e
WHERE 	JOB_ID NOT LIKE 'SA_%'
GROUP	BY	JOB_ID 
HAVING SUM(SALARY) > 10000
ORDER BY SUM(SALARY) DESC  
;

-- 문제10) 동일한 직업(JOB_ID)을 가진 사원들의 총 수를 조회한다.

SELECT 	JOB_ID , COUNT(*) 
FROM 	EMPLOYEES e 
GROUP	BY	JOB_ID 
ORDER 	BY 	JOB_ID 
;
profile
//

0개의 댓글