-
Notifications
You must be signed in to change notification settings - Fork 0
Oracle_SQL_ROLLUP , GROUP BY, CUBE
haenyilee edited this page Aug 11, 2020
·
4 revisions
SQL> SELECT deptno,sal,COUNT(*) FROM emp GROUP BY deptno,sal ORDER BY deptno,sal;
DEPTNO SAL COUNT(*)
---------- ---------- ----------
10 1300 1
10 2450 1
10 5000 1
10 1
20 800 1
20 1100 1
20 2975 1
20 3000 2
30 950 1
30 1250 2
30 1500 1
30 1600 1
30 2850 1
13 rows selected.
SQL> SELECT deptno,sal,COUNT(*) FROM emp GROUP BY ROLLUP(deptno,sal) ORDER BY deptno,sal;
DEPTNO SAL COUNT(*)
---------- ---------- ----------
10 1300 1
10 2450 1
10 5000 1
10 1
10 4
20 800 1
20 1100 1
20 2975 1
20 3000 2
20 5
30 950 1
30 1250 2
30 1500 1
30 1600 1
30 2850 1
30 6
15
17 rows selected.
SQL> SELECT deptno,sal FROM emp GROUP BY ROLLUP(deptno,sal) ORDER BY deptno,sal;
DEPTNO SAL
---------- ----------
10 1300
10 2450
10 5000
10
10
20 800
20 1100
20 2975
20 3000
20
30 950
30 1250
30 1500
30 1600
30 2850
30
17 rows selected.
SQL> SELECT deptno,sal FROM emp GROUP BY ROLLUP(sal,deptno) ORDER BY deptno,sal;
DEPTNO SAL
---------- ----------
10 1300
10 2450
10 5000
10
20 800
20 1100
20 2975
20 3000
30 950
30 1250
30 1500
30 1600
30 2850
800
950
1100
1250
1300
1500
1600
2450
2850
2975
3000
5000
27 rows selected.
SQL> SELECT sal,deptno,COUNT(*) FROM emp GROUP BY ROLLUP(sal,deptno) ORDER BY sal,deptno;
SAL DEPTNO COUNT(*)
---------- ---------- ----------
800 20 1
800 1
950 30 1
950 1
1100 20 1
1100 1
1250 30 2
1250 2
1300 10 1
1300 1
1500 30 1
1500 1
1600 30 1
1600 1
2450 10 1
2450 1
2850 30 1
2850 1
2975 20 1
2975 1
3000 20 2
3000 2
5000 10 1
5000 1
10 1
1
15
27 rows selected.
0장 공부를 시작하기 전에 미리 알아두세요
- 미리 알아야 할 몇 가지 중요한 개념
- 오라클 데이터베이스 서버에 접속하기
1장 SELECT 명령을 이용하여 데이터를 조회합니다
- 모든 컬럼 조회하기
- 원하는 컬럼만 조회하기
- SELECT 명령에 표현식을 사용하여 출력하기
- 컬럼 별칭 사용하여 출력하기
- DISTINCT 명령어로 중복된 값을 제거하고 출력하기
- 연결 연산자로 컬럼을 붙여서 출력하기
- 원하는 조건만 골라내기 - WHERE 절 사용
- SQL에서 기본 산술 연산자 사용하기
- 다양한 연산자를 활용하는 방법
- 정렬하여 출력하기 - ORDER BY 절 사용하기
- 집합 연산자
2장 SQL 단일행 함수를 배웁니다
- 문자 함수
- 숫자 관련 함수들
- 날짜 관련 함수들
- 형 변환 함수
- 일반 함수
- 정규식(Regular Expression) 함수로 다양한 조건 조회하기
- 11g에서 추가된 정규식 함수
3장 SQL 복수행 함수(그룹 함수)를 배웁니다
- GROUP 함수의 종류
- GROUP BY 절을 사용해 특정 조건으로 세부적인 그룹화하기
- HAVING 절을 사용해 그룹핑한 조건으로 검색하기
- 반드시 알아야 하는 다양한 분석 함수들
4장 JOIN을 배웁니다
- Cartesian Product(카티션 곱)
- EQUI Join(등가 조인)
- Non-Equi Join(비등가 조인)
- OUTER Join(아우터 조인)
- SELF Join
- CREATE - 새로 생성하라
- ALTER 명령
- TRUNCATE 명령
- DROP 명령
- DELETE, TRUNCATE, DROP 명령어의 차이점 비교
- 11g에서 추가된 기능 소개
- Data Dictionary(데이터 딕셔너리)
- INSERT(새로운 데이터 입력하기)
- UPDATE(데이터 변경하기)
- DELETE
- MERGE
- UPDATE 조인
- TRANSACTION 관리하기
- 제약 조건의 종류
- 제약 조건 사용하기
- 제약 조건 관리하기
- 인덱스(INDEX)란 무엇일까요?
- 인덱스의 생성 원리
- 인덱스 구조와 작동 원리(B-TREE 인덱스 기준입니다)
- 인덱스의 종류
- 인덱스의 주의사항
- 인덱스 관리 방법
- Invisible Index(인비저블 인덱스) -11g New Feature
9장 VIEW(뷰)를 배웁니다
- 단순 뷰(Simple View)
- 복합 뷰(Complex View)
- Inline View(인라인 뷰)
- View 조회 및 삭제하기
- Materialized View(MVIEW) - 구체화된 뷰
- Sub Query가 무엇일까요?
- Sub Query의 종류
- Scalar Sub Query(스칼라 서브 쿼리)
- SEQUENCE(시퀀스)
- SYNONYM(시노님 - 동의어)
- 계층형 쿼리의 문법
- 계층형 쿼리의 기본 구조
- 계층 구조에서 일부분만 계층화하기
- CONNECT_BY_ISLEAF( ) 함수
- CONNECT_BY_ROOT 함수
- User와 Schema(스키마)에 대해서 알아봅니다
- PROFILE(프로파일) 생성 및 관리하기
- PRIVILEGE(권한) 관리에 대해 배웁니다
- Role(롤) 관리하기
- DEFAULT value로 sequence의 next value 지정 가능
- Invisible Column 사용 가능
- 순위 뽑을 때 Top-N 기능 사용 가능
- IDENTITY Column 지원
- Null 값을 위한 DEFAULT 값 지정 가능
- 그 외 주요 New Features
- PL/SQL이란
- PL/SQL의 런타임 구조
- PL/SQL 기본 구조
- PL/SQL BLOCK 기본 구성
- PL/SQL 블록 작성 시 기본 규칙과 권장사항
- PL/SQL 문 내에서의 SQL 문장 사용하기
- PL/SQL에서의 렉시칼
- PL/SQL에서의 블록 구문 작성 지침
- 중첩된 PL/SQL 블록 작성하기
- PL/SQL에서의 연산자 사용하기
- PL/SQL에서 변수의 의미와 사용법
- PL/SQL 제어문 사용법
- PL/SQL Cursor(커서)
- ORACLE EXCEPTION(예외 처리)
- ORACLE SUBPROGRAM