집계 함수 - 소집계 함수
[ ROLLUP , CUBE, GROUPING SETS, GROUPING ]
기본 세팅 – GROUP BY


1. ROLLUP
- 그룹별로 중간 집계 처리를 하는 함수
- 오른쪽에서부터 한 개씩 지워가며 조회해주는 애 – 통계 내주는 애

# 총 3개의 그룹 형성
- ( DEPTNO, JON ) 2개 세트인 - 1개 그룹
- JOB 빼고 1개 그룹
- DEPTNO 빼고 1개 그룹
# 오른쪽에서부터 한 개씩 지워가며 조회해주는 애 – 통계 내주는 애

# GROUP BY로 했을 때는 ( DEPTNO, JON ) 2개 세트인 - 1개 그룹

2. CUBE
- 그룹별 산출한 결과를 집계하는 함수
- CUBE는 모든 경우의 수에 대해서 통계를 내준다. - 조회를 해준다.


# 총 4개의 그룹 형성
- ( DEPTNO, JON ) 2개 세트인 - 1개 그룹
- JOB 빼고 1개 그룹
- DEPTNO 빼고 1개 그룹
- 모두 NULL인 경우 - 1개 그룹

3. GROUPING SETS
- 이 친구로 한 번 //// 이 친구로 한 번 각각 한 번씩 해준다.
- DEPYNO로만 그룹바이 하면 678 나오고
- JOB만 그룹바이 하면 12345 나오고
- 따로따로 조회하는 2개의 작업을 한 번에 해줄 수 있구나~

# 총 2개의 그룹 형성
- DEPTNO 그룹 1개
- JOB 그룹 1개
4. GROUPING
- ROLLUP, CUBE, GROUPING SETS 3개 함수에 대해 보조
- 소집계애들에게 보조적으로 들어가는 친구
# 소집계 함수 이용 시 NULL이라고 뜨는 이유는?
- 소계를 내줄 때 그룹 지어지는 방식에 따라서 빈칸이 생기는데
- 이렇게 강제적으로 생긴 NULL을 다른 방식으로 처리하기 위한 것이 GRUOPING

# 칼럼의 값이 NULL이 맞으면 1 반환
# 칼럼의 값이 NULL이 아니면 0 반환
## 응용해보기


# 원래 NULL이라고 출력되는 부분에 내가 조건으로 설정한 값이 출력됨을 확인
## 소집계 완벽한 이해는 세미파이널 때 실습을 통해서 다시!
## 통계내는 방법에 도움을 주는 애들이 있구나 정도로 이해
- 소집계 끝 -
인덱스
- 웬만한 테이블에는 인덱스가 모두 존재- 만들어주어야 한다.
- 우리가 직접 인덱스를 만들어 주는 경우는 - 조회를 위한 테이블일 경우 - 주로 부여한다.
- PRIMARY KEY , UNIQUE는 인덱스 자동 부여

## 인덱스 종류 2가지
- UNIQUE 되어있는 애한테 만드는 인덱스와 아닌 인덱스
#1

#2

REVIEW
소집계 함수와 인덱스 이론에 대해 배워보았다.
단순히 그룹으로 지어서 하는 방법만 해보았는데
소집계 함수를 사용해보니 뭔가 되게 어려워진 느낌.
한편으로는
잘만 사용하면 GROUP BY를 여러 번 해서 얻어야 하는 결과들을
한 번에 쫙 얻을 수 있는 편리함도 느껴지고
어려움과 편리함이 공존하는 현재 상태 ㅎㅎ
통계를 내는 상황에서 실제 사용해보고
공부를 더 한다면
편리함 쪽으로 많이 기울듯하다!
인덱스 부분에서는 기본키나 유일 키로 지정하면
자동으로 인덱스 부여된다는 점이 새로웠다.
미니 플젝을 하면서도 느낀 점이지만
ORACLE DB에 대한 공부도
JAVA에 뒤처지지 않게 해야 할 것 같다.
내가 원하는 데이터를 뽑아오는 것은 물론이고
보다 효율적인 DB공간 활용과 원활한 기능 작동을 위하여.
후후 화이팅! :)
'Java 기반 클라우드 융합 개발자 과정 - KH 정보교육원 > 5월' 카테고리의 다른 글
22.05.30 - Mini Project 발표! (0) | 2022.06.03 |
---|---|
22.05.27 - 회원 관리 기능 구현 [ 회원 정보 수정, 회원 탈퇴 ] (0) | 2022.06.01 |
22.05.26 - 게시판 기능 구현 [ 등록, 목록 조회, 상세 조회 ] (0) | 2022.05.30 |
22.05.25 - [뷰, 제약조건, 시퀀스 ] - VIEW, CONSTRAINT, SEQUENCE (0) | 2022.05.27 |
22.05.24 - 회원가입, 로그인 기능 구현 !! (0) | 2022.05.27 |