1. TEST12 테이블을 참고하여 BOOK_TYPE별 가격 합계액을 구하시오 (BOOK_TYPE, PRICE만 출력)
SELECT BOOK_TYPE, SUM(PRICE)
FROM TEST12
GROUP BY BOOK_TYPE
2. 1번의 답을 참고하며, 이번에는 BOOK_TYPE의 소계를 구하시오 (BOOK_TYPE, PRICE만 출력)
SELECT BOOK_TYPE, SUM(PRICE)
FROM TEST12
GROUP BY BOOK_TYPE, ROLLUP(BOOK_NAME)
3. 1번의 답을 찹고하며, 이번에는 BOOK_TYPE별 가격 합계액을 구하시오
(BOOK_TYPE, PRESS, BOOK_NAME의 3개 컬럼의 정보를 출력하시오)
SELECT PRESS, BOOK_TYPE, SUM(PRICE)
FROM TEST12
GROUP BY PRESS, ROLLUP(BOOK_TYPE)
4. EMP, DEPT 테이블을 참고하여 부서별로 총 인원수와 급여 합계를 구하시오 (DNAME 출력하시오)
SELECT b.dname, SUM(a.sal) sal, COUNT(a.empno) emp_count
FROM emp a, dept b
WHERE a.deptno = b.deptno
GROUP BY b.dname
5. EMP, DEPT 테이블과 4번을 참고하여 부서이름과 직업별로 급여소계와 인원소계를 구하고
총인원과 총 급여를 구하여라 단, 부서번호, 부서이름, 직업, 급여, 인원수를 출력하시오
SELECT B.DEPTNO,b.dname,a.job
, SUM(a.sal) sal
, COUNT(a.empno) emp_count
FROM emp a, dept b
WHERE a.deptno = b.deptno
GROUP BY ROLLUP(B.DEPTNO,(b.dname,a.job))
6. 5번의 출력값에 GROUPING 함수를 사용해서 NULL값을 컬럼의 정보를 표시할 수 있는 문자열을 추가하시오
SELECT DECODE(B.DEPTNO, NULL, '전체합계', B.DEPTNO) AS 부서번호
, DECODE(b.dname, NULL, '부서소계', b.dname) AS 부서이름
, DECODE(a.job, NULL, '직업소계', a.job) AS 직업명
, SUM(a.sal) sal
, COUNT(a.empno) emp_count
FROM emp a, dept b
WHERE a.deptno = b.deptno
GROUP BY ROLLUP(B.DEPTNO,(b.dname,a.job))
7. 주문방법, 결혼여부, 성별,주문금액정보와 주문방법별, 결혼여부별, 성별별 주문합계금액을 출력하시오(group sets)
SELECT ORD.ORDER_mode 주문방법,
DECODE (cus.marital_status, 'single', '미혼', 'married', '기혼') 결혼여부,
DECODE (cus.gender, 'F', '여성', 'M', '남성') 성별,
SUM (ord.order_total) 주문금액
FROM orders ord, customers cus
WHERE ord.customer_id = cus.customer_id
GROUP BY GROUPING SETS (ord.order_mode, cus.marital_status, cus.gender);
'IT_Web > Oracle' 카테고리의 다른 글
Oracle 특정 컬럼의 제품을 제품별, 등급별, 특정 등급으로 관리, 차액의 비율, CASE, ROLLUP, GROUP BY 활용 (0) | 2020.03.09 |
---|---|
Oracle RATIO_TO_REPORT 전체실적에서 개인실적 비율구하기, WITH절 사용하기 (0) | 2020.03.09 |
Oracle WITH 절 특징 및 개념 (0) | 2020.03.08 |
Oracle RATIO_TO_REPORT WINDOW 함수 파티션 그룹에 대한 비율 반환함수 (0) | 2020.03.08 |
Oracle ROLLUP, CUBE, GROUPING(), GROUPING SETS(), GROUP_ID() 함수 개념 (0) | 2020.03.08 |