1. 여러 그룹별로 나누어 출력하기 - GROUP BY
select dept_code, sum(salary) from employee group by dept_code;
직원들의 salary 합계를 dept_code 별로 나누어서 계산한다.
dept_code가 겹치는 행이 없어진다.
실행결과
2. 각 그룹별 집계를 함께 출력하기 - ROLLUP
select dept_code, sum(salary) from employee group by rollup(dept_code, job_code) order by 1;
실행결과
3. 중간집계를 모두 모아서 출력하기 - CUBE
select dept_code, sum(salary) from employee group by cube(dept_code, job_code) order by 1;
실행결과
4. 합집합 - UNION ALL
select emp_id, emp_name, dept_code, salary from employee where dept_code = 'D5' union all
select emp_id, emp_name, dept_code, salary from employee where salary > 3000000;
A union all B
두 조건에 맞는 결과가 합쳐져서 출력된다.
실행 결과
5. 교집합 - INTERSECT
select emp_id, emp_name, dept_code, salary from employee where dept_code = 'D5' intersect
select emp_id, emp_name, dept_code, salary from employee where salary > 3000000;
A intersect B
A와 B 모두 만족하는 행만 출력된다.
실행결과
6. 차집합 - MINUS
select emp_id, emp_name, dept_code, salary from employee where dept_code = 'D5' minus
select emp_id, emp_name, dept_code, salary from employee where salary > 3000000;
A minus B
A조건을 만족하는 행에서 B조건을 만족하는 행을 제외한다.
실행 결과
'Database' 카테고리의 다른 글
[오라클] 순위 가져오기 (0) | 2021.03.10 |
---|---|
[오라클] 테이블 합치기 (0) | 2021.03.09 |
[오라클] 데이터 변환 함수 (0) | 2021.03.08 |
[오라클] 날짜 표현 (0) | 2021.03.08 |
[오라클] 날짜처리 주요 함수 (0) | 2021.03.08 |
댓글