그룹 조회
그룹 조회
이 문서에서는 그룹 조회를 사용하여 데이터를 원하는 기준으로 묶어서 조회하는 방법에 대해서 살펴본다.
샘플 데이터
샘플 데이터는 기존과 동일하게 product를 사용한다.
table product
번호 (no) | 이름 (name) | 종류 (type) | 가격 (price) | 제조일 (made) | 유통기한 (expire) |
1 | 스크류바 | 아이스크림 | 1200 | 2020-05-01 | 2020-10-01 |
2 | 마이쮸 | 사탕 | 900 | 2020-01-01 | 2021-01-01 |
3 | 초코파이 | 과자 | 3000 | 2020-02-01 | 2020-10-20 |
4 | 맛동산 | 과자 | 2200 | 2020-01-05 | 2020-04-05 |
5 | 참이슬 | 주류 | 1000 | 2020-01-01 | 2020-07-01 |
6 | 처음처럼 | 주류 | 1000 | 2020-03-15 | 2020-08-15 |
7 | 바나나킥 | 과자 | 1500 | 2020-05-03 | 2020-06-03 |
8 | 빠삐코 | 아이스크림 | 1000 | 2019-12-01 | 2020-06-01 |
9 | 멘토스 | 사탕 | 1200 | 2020-03-20 | 2020-12-31 |
10 | 오레오 | 과자 | 2100 | 2019-06-01 | 2020-06-01 |
생성 구문은 다음과 같다.
그룹화
샘플 데이터들을 그룹으로 묶을 수 있는 방법은 여러 가지가 있다.
종류(type)별로 구분
제조일자(made) 중에서 연도별/월별로 구분
유통기한(expire) 중에서 연도별/월별로 구분
가격(price)을 천원 단위로 구분
이외에도 원하는 방법에 따라 다양하게 그룹화 할 수 있으며, 2,3,4번처럼 항목 값으로 바로 그룹이 되지 않고 계산이 필요한 경우는 코드가 조금 더 복잡해진다.
종류별로 그룹 조회
종류(type)를 이용하여 group을 하기 위한 과정은 다음과 같다.
우선 그룹화에 앞서 항목을 먼저 조회한다.
type |
아이스크림 |
사탕 |
과자 |
과자 |
주류 |
주류 |
과자 |
아이스크림 |
사탕 |
과자 |
조회된 항목들을 보면 중복되는 요소들이 있으며, 중복 제거(distinct)가 아닌 그룹화를 통해 데이터를 묶을 수 있다.
group by type
키워드를 통해 type을 기준으로 묶어주며, 다음과 같은 결과가 조회되는 것을 확인할 수 있다.
type |
아이스크림 |
사탕 |
과자 |
주류 |
이렇게 그룹으로 묶인 상태에서 집계 함수를 통하여 원하는 항목을 그룹에 추가하여 확인할 수 있다.
분류 | 합계 |
아이스크림 | 8800 |
사탕 | 2100 |
과자 | 2200 |
주류 | 2000 |
분류 | 개수 |
아이스크림 | 2 |
사탕 | 2 |
과자 | 4 |
주류 | 2 |
이 외에도 avg, min, max 등을 사용할 수 있다.
그룹 조건
그룹을 만들 때 조건을 설정할 수 있다. 이는 WHERE 조건과는 다르며 그룹의 생성 여부에 영향을 미친다.
다음 구문은 분류별 개수가 3개 이상인 그룹을 조회한다.
분류 | 개수 |
과자 | 4 |
group만 수행했을 때와 다르게 주류, 사탕, 아이스크림은 기준이 충족되지 않아 그룹으로 설정되지 않았음을 알 수 있다.
그룹 함수
오라클 내장 함수 의 그룹 함수 부분을 참조한다.
page오라클 내장 함수Last updated