본문 바로가기

카테고리 없음

데이터베이스 3일차_다중행함수(2)(oracle, sql)

< SQL 그룹 함수 실습문제  >


EX1. 모든 사원의 급여 최고액, 최저액, 총액 및 평균액을 표시합니다. 
      열 레이블을 각각 Maximun, Minimum, Sum 및 Average로 지정하고 결과를 정수로 반올림하는 질의를 작성하시오.

SELECT COUNT(*) AS 사원수,MAX(SALARY) AS Maximum, MIN(SALARY) AS Minimum, 
SUM(SALARY) Sum,ROUND(AVG(SALARY),0) Average
FROM EMP;



EX2. 각 직무에 대한 급여 최저액, 최고액, 총액 및 평균액을 표시하도록 한다. 평균은 소숫점 둘째자리까지 표현하시오.

SELECT JOB_ID, MAX(SALARY),MIN(SALARY) SUM(SALARY), TRUNC(AVG(SALARY),2)
FROM EMP
GROUP BY JOB_ID
ORDER BY 1;


EX3. 직무가 동일한 사원의 수를 표시하는 질의를 작성하시오.

SELECT COUNT(*) AS 사원수,JOB_ID
FROM EMP
GROUP BY JOB_ID
ORDER BY 2;



EX4. 관리자 목록 없이 관리자 수만 표시하고 열 레이블을 Number of Managers로 지정합니다.

SELECT COUNT(DISTINCT,MANAGER_ID)AS "NUMBER OF MANAGERS"
FROM EMP

EX5. 최고 급여와 최저 급여의 차액을 표시하는 질의를 작성하고 열 레이블을 DIFFERENCE로 지정하시오.

SELECT MAX(SALARY)-MIN(SALARY) AS DIFFERENCE
FROM EMP;
 

EX6. 관리자 번호 및 해당 관리자에 속한 사원의 최저 급여, 인원수를 표시합니다. 
      관리자를 알 수 없는 사원 및 최저 급여가 $5000 미만인 그룹 제외시키고 급여를 기준으로 출력 결과를 내림차순으로 정렬하시오.

SELECT MANAGER_ID, COUNT(MANAGER_ID) ,MAX(SALARY), MIN(SALARY)
FROM EMP
GROUP BY MANAGER_ID
HAVING MIN(SALARY)>=5000 AND MANAGER_ID IS NOT NULL
ORDER BY 3 DESC;


EX7. 부서별 직무별 인원수 및  평균급여를 표시하는 질의를 작성하시오.
        단, 평균 급여를 소수점 둘째 자리에서 반올림하고, 
             부서번호 순으로 정렬하고 부서가 같으면 평균급여가 높은 직무순으로 정렬하시오.

SELECT DEPARTMENT_ID AS 부서,JOB_ID AS 직무,COUNT(JOB_ID) AS "직무별 인원수"

,COUNT(DEPARTMENT_ID) AS "부서별 인원수",
 ROUND(AVG(SALARY),1) AS 평균급여
FROM EMP
GROUP BY DEPARTMENT_ID,JOB_ID
ORDER BY 1, 4;

EX8. 총 사원의 수 및 2002,2003, 2004,2005년에 입사한 사원 수를 표시하는 질의를 작성하고 적합한 열 머리글을 지정합니다.

출력 예 ) 
TOTAL      2002     2003    2004    2005
107       7          6        10       29

SELECT COUNT(*)