[SQL] SQL 문법 실습_#2 (GROUP BY)

SOSO·2022년 5월 16일
0

실습 

목록 보기
4/7
post-thumbnail

📌 SQL 문법 실습_#2

1)모든 사원의 급여 최고액,최저액,총액 및 평균액을 표시하고 열 레이블은 각각 maximum,minimum,sum 및 average로 지정하고 결과를 정수로 반올림하고 세자리 단위로 ,를 명시하시오.

SELECT 
MAX(sal)maximum,
MIN(sal)minimum,
TO_CHAR(ROUND(AVG(sal)),'9,999')average 
FROM emp;

2)emp테이블에서 급여와 커미션을 더한 금액의 최고,최저,평균금액을 구하시오.
평균금액은 소수점 첫째자리까지 표시하시오.

SELECT MAX(sal+NVL(comm,0)),MIN(sal+NVL(comm,0)),
ROUND(AVG(sal+NVL(comm,0)),1)FROM emp;

3)업무가 동일한(업무별) 사원수를 표시하시오.

SELECT job,COUNT(*) FROM emp GROUP BY job;

4)emp테이블에서 30번부서의 사원수를 구하시오.

SELECT COUNT(*) FROM emp WHERE deptno=30;

5)emp테이블에서 업무별 최고 월급을 구하고 업무,최고 월급을 출력하시오.

SELECT job,MAX(sal) FROM emp GROUP BY job ;

6)emp테이블에서 부서별로 지급되는 총월급에서 금액이 9,000이상인 총월급을 받는 부서번호,총월급을 출력하시오

SELECT deptno, SUM(sal) FROM emp 
GROUP BY deptno HAVING SUM(sal)>=9000;

7)emp테이블에서 업무별로 사번이 제일 늦은 사람을 구하고 그 결과내에서
사번이 79로 시작하는 결과만 출력하시오.

SELECT job, MAX(empno) FROM emp 
GROUP BY job HAVING MAX(empno) LIKE '79%';

8)emp테이블에서 업무별 총월급을 출력하는데 업무가 'MANAGER'인 사원들은
제외하고 총월급이 5,000보다 많은 업무와 총월급을 출력하시오.

SELECT job,SUM(sal) FROM emp 
WHERE job!='MANAGER' GROUP BY job HAVING SUM(sal)>5000;

9)emp테이블에서 업무별 사원의 수가 4명 이상인 업무와 인원수를 출력하시오.

SELECT job,COUNT(*) FROM emp 
GROUP BY job HAVING COUNT(*)>=4;

10)emp테이블에서 분기별로 입사한 사원수를 구하는데 2분기에 입사한 사원수만 구하시오.(TO_CHAR()사용하기)

SELECT TO_CHAR(HIREDATE,'Q')분기,COUNT(*) 사원수 FROM emp 
GROUP BY TO_CHAR(HIREDATE,'Q') HAVING TO_CHAR(HIREDATE,'Q')=2;



1)모든 사원의 이름, 부서번호, 부서이름을 표시하시오.(emp,dept)

SELECT e.ename,e.job,d.dname,d.loc
FROM emp e, dept d
WHERE e.deptno=d.deptno;

2)업무가 MANAGER 인 사원의 정보를 이름,업무,부서명,근무지 순으로 출력하시오.(emp,dept)

SELECT e.ename,e.job,d.dname,d.loc
FROM emp e, dept d
WHERE e.deptno=d.deptno AND e.job='MANAGER';

3)커미션을 받고 급여가 1,600이상인 사원의 사원이름,급여,부서명,근무지를 출력하시오.(emp,dept)

SELECT e.ename,e.sal,d.dname,d.loc
FROM emp e, dept d
WHERE e.deptno=d.deptno AND comm IS NOT NULL AND e.sal>=1600;

4)근무지가 CHICAGO인 모든 사원의 이름,업무,부서번호 및 부서이름을 표시하시오

SELECT e.ename,e.job,e.deptno,d.dname
FROM emp e, dept d
WHERE e.deptno=d.deptno AND d.loc='CHICAGO';

5)근무지(loc)별로 근무하는 사원의 수가 5명 이하인 경우, 인원이 적인 도시 순으로 정렬하시오.(근무 인원이 0명인 곳도 표시)

SELECT d.loc,COUNT(e.ename) 
FROM emp e, dept d
WHERE e.deptno(+) = d.deptno 
GROUP BY d.loc HAVING COUNT(e.ename)<=5 
ORDER BY d.loc ASC;
profile
한다 열심히

0개의 댓글