#111
절이라는 용어를 많이 쓰다보니 영어공부하면서 배웠던 구와 절이 생각나네요
절은 주어+동사, 구는 주어+동사가 아닌 두 개의 단어로 구성된 품사.......
1. GROUP BY
데이터를 처리하다보면 공통된 그룹으로 묶을 일이 많이 있습니다.
집계함수를 이용하여 처리하는 것들도 있지만 데이터를 분류하여 처리하는 경우가 있는데요.
이 때 GROUP BY를 사용하며, 특정 컬럼 단위로 그룹을 묶을 수 있습니다.
EX) DEPARTMENT_ID로 분류
EMPLOYEES 테이블에는 NULL을 포함하여 총 12개의 부서가 있으며, GROUP BY를 통하여 이 부서를 분류할 수 있었습니다.
이 때 주의하실 점은 SELECT에서 조회하는 컬럼입니다.
GROUP BY를 통하여 분류할 컬럼 혹은 집계함수를 사용해야만 데이터를 출력하실 수 있습니다.
EX) 주의하지 않을 경우
집계함수를 사용해서는 다음과 같이 사용할 수 있습니다.
EX) COUNT, 부서별 사원 수
그리고 또 GROUP BY의 경우 꼭 하나의 컬럼만 올 수 있는 것이 아니라 여러 개의 컬럼이 올 수 있습니다.
EX) 부서별, 매니저별 사원수
2. HAVING 절
HAVING 절은 GROUP BY와 함께 사용되며, 집계 함수를 이용한 조건을 기술할 때 사용합니다.
GROUP BY로 그룹을 묶었는데 이 그룹에 대하여 무언가 조건을 주고 싶다 할 때 사용하신다고 보시면 됩니다.
문법은 WHERE 절과 동일합니다.
EX) 부서별 사원 수가 5명 이상인 부서
이렇게 HAVING을 통하여 집계함수 조건을 사용할 수 있습니다.
그리고 참고하실 점은 HAVING 절은 GROUP BY 이전, 이후 어디든 사용하실 수 있으며, 동일한 결과를 얻으실 수 있습니다.
3. ROLLUP
추가적으로 ROLLUP에 대해서 알아보도록 하겠습니다.
ROLLUP의 경우 데이터 통계를 낼 때 소계라고 보시면 됩니다.
GROUP BY를 통하여 그루핑한 결과별 합계 정보를 보실 수 있습니다.
EX) 부서별, 매니저별 사원의 연봉 소계
빨간색으로 표시한 부분이 각 부서에 매니저별로 분류한 사원들의 연봉을 더한 총 값입니다.
여기서 NULL은 ROLLUP을 통해 소계를 낸 기준 값이므로 NULL을 대체하는 함수를 사용하여 변경하시면 알아보기 수월하실 수 있습니다.
ROLLUP을 사용하지 않았을 때와 비교해보도록 하겠습니다.
차이가 느껴지시나요? 왼쪽한 한번에 합계를 냈었다면 오른쪽은 좀 더 세세하게 합계를 냈습니다.
통계를 내실 때 유용하게 사용하실 수 있습니다.
'컴소니 > DB' 카테고리의 다른 글
[MySQL] 유닉스 타임스탬프 변환 (0) | 2022.07.04 |
---|---|
[오라클 DBMS 공부] 클라이언트와 서버 프로세스의 관계 (0) | 2020.11.03 |
[오라클 DBMS 공부] 오라클 내장함수 - 집계함수(feat. 중복체크) (0) | 2020.08.25 |
[오라클 DBMS 공부] 서브쿼리에 대해서 - 중첩쿼리, 인라인뷰 등 (0) | 2020.08.24 |
[오라클 DBMS 공부] 조인(Join)이란? - 내부조인, 외부조인, ANSI조인 (0) | 2020.08.07 |
댓글