일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 운영체제
- CSS
- 혼공머신
- 컴퓨터비전
- 데이터베이스
- 코딩테스트
- 영어공부
- 텍스트마이닝
- CNN
- 딥러닝
- 파이썬
- 파이썬라이브러리
- C++
- html/css
- pandas
- 연습문제
- 데이터입출력구현
- 중학수학
- 머신러닝
- numpy/pandas
- JSP/Servlet
- 자바
- 데이터분석
- 중학1-1
- 컴퓨터구조
- 정보처리기사실기
- 정수와유리수
- SQL
- 자바 실습
- 정보처리기사필기
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
다중행 함수와 데이터 그룹화 3 - 그룹화와 관련된 여러 함수 본문
조금 전에 다른 할일이 있어 그걸 마치고 이제 다시 공부를 시작하려고 한다. 3시간 정도 더 공부하다 12시 반 안에는 취침할 생각이다. 내일 새벽에도 해야 할 공부가 많으니 늦어도 12시 반 안에는 잠자리에 드는 것이 좋을 것 같다.
사실 그룹화 함수는 실무에서 사용할 확률이 별로 높지 않다고 한다. 그래도 이런 함수가 있다는 정도로 간단하게 살펴보려고 한다. 2달 후에 SQLD 시험을 볼 예정인데, 이런 문제들도 출제될테니 말이다.
학습 목표
- 그룹화 함수에 대해 간단하게 살펴본다.
- 모든 예시 문제를 다 풀지 않고 중요한 것 위주로 훑고 넘어간다.
- 40분 안에 학습을 모두 마치고 연습문제 풀이에 집중해본다.
학습 시간
오후 9시 15분 ~ 10시 <45분 소요>
그룹화와 관련된 여러 함수
ROLLUP, CUBE, GROUPING SETS 함수
GROUP BY절에 지정할 수 있는 특수 함수이다. ROLLUP과 CUBE함수는 그룹화 데이터의 합계를 출력할 때 유용하게 사용한다.
기존 GROUP BY절만 사용한 그룹화
ROLLUP 함수를 적용한 그룹화
명시한 열을 소그룹부터 대그룹의 순서로 각 그룹별 결과를 출력하고, 마지막에 총 데이터의 결과를 출력한다. 이 함수는 명시한 열에 한하여 결과가 출력되며 그룹 함수는 지정할 수 없다.
CUBE 함수를 적용한 그룹화
ROLLUP 함수를 적용했을 때보다 더 많은 결과가 나온다. 이 함수는 지정한 모든 열에서 가능한 조합의 결과를 모두 출력한다.
GROUPING SETS 함수
같은 수준의 그룹화 열이 여러 개 일때 각 열별 그룹화를 통해 결과 값을 출력하는데 사용한다.
ROLLUP과 CUBE 함수는 '특정 부서 내 직책별 인원수'처럼 열을 대그룹, 소그룹 같이 계층적으로 그룹화하여 데이터를 집계했다. GROUPING SETS 함수는 결과값을 하나의 결과로 출력할 수 있다.
지정한 열이 계층적으로 불류되지 않고 각각 따로 그룹화한 후 연산을 수행했다.
그룹화 함수
데이터 자체의 가공이나 특별한 연산 기능을 수행하지는 않지만 그룹화 데이터의 식별이 쉽고 가독성을 높이기 위해 사용한다.
GOUPING 함수
DEPTNO, JOB열의 그룹화 결과 여부를 GROUPING 함수로 확인하기
GOUPING 함수에 DEPTNO와 JOB열을 적용한 결과가 0,1로 출력된다는 것을 알 수 있다. 0은 그룹화 되었음을, 1은 그룹화되지 않은 데이터를 의미한다.
GROUP_ID 함수
ROLLUP 또는 CUBE 함수로 연산할 때 특정 열이 그룹화되었는지 출력하는 함수이다. 그룹화 여부를 검사할 열을 하나씩 지정하는 GROUPING 함수와 달리 이 함수는 한번에 여러 열을 지정할 수 있다.
DEPTNO, JOB을 함께 명시한 GROUPING_ID 함수 사용하기
LISTAGG 함수
오라클 11G 버전부터 사용할 수 있는 함수이다. 그룹에 속해 있는 데이터를 가로로 나열할 때 사용한다.
GROUP BY절로 그룹화하여 부서 번호와 사원 이름 출력하기
각 부서별 사원 이름을 가로로 나열해서 출력하고 싶을 때 LISTAGG 함수를 사용한다.
부서별 사원 이름 나란히 나열하여 출력하기
PIVOT, UNPIVOT 함수
이 함수도 오라클 11G부터 제공한다. PIVOT 함수는 기존 테이블 행을 열로 바꾸고, UNPIVOT 함수는 기존 테이블 열을 행으로 바꿔서 출력한다.
부서별·직책별로 그룹화하여 최고 급여 데이터 출력하기
세로로만 나열되는 열값을 PIVOT 함수를 사용하면 가로와 세로로 나누어 출력할 수 있다.
PIVOT 함수를 사용하여 직책별·부서별 최고 급여를 2차원 표 형태로 출력하기
UNPIVOT 함수를 사용하여 열로 구분된 그룹을 행으로 출력하기
UNPIVOT 함수는 PIVOT 함수와 반대 기능을 한다.
PIVOT 함수를 적용하기 전과 같이 출력된다.
학습을 마치고
여기까지 해서 여러가지 함수에 대해서 살펴보았다. 알아두면 나중에 편리한 기능도 있으니 학습하길 잘했다는 생각이 든다. 내 예상대로 40분 정도밖에 걸리지 않았다. 그냥 가볍게 읽으면서 어떤 결과가 나오는지 출력해보았다.
지난 주말부터 오늘로서 데이터베이스 공부 4일차이다. 처음에는 많이 어렵고 지루해보였는데, 매일 공부하다보니 재미있어졌고 지금은 자바만큼 재미있어졌다.
주말에 정처기와 DB 공부한다고 3일이나 자바 공부를 하지 못했다. 오늘은 자기 전에 꼭 1시간이라도 공부를 하다 취침하려고 한다. 모든 수업은 자바가 기본이 되는데 기초가 약하다보니 수업을 따라가는데 무리가 있다.
느리지만 차근차근 공부하며 진도를 따라잡으려고 한다.
'알고리즘 및 자료 관리 > 데이터베이스' 카테고리의 다른 글
여러 테이블을 하나의 테이블처럼 사용하는 조인 1 - 조인과 조인의 종류 (0) | 2024.08.21 |
---|---|
다중행 함수와 데이터 그룹화 4 - 단원 마무리 연습문제 풀기 (0) | 2024.08.21 |
다중행 함수와 데이터 그룹화 2 - GROUP BY와 HAVING 절 (0) | 2024.08.21 |
다중행 함수와 데이터 그룹화 1 - 다중행 함수와 GROUP BY (0) | 2024.08.21 |
데이터 처리와 가공을 위한 오라클 함수 4 - 단원 연습문제 풀기 (0) | 2024.08.21 |