그룹 조회
Last updated
Last updated
이 문서에서는 그룹 조회를 사용하여 데이터를 원하는 기준으로 묶어서 조회하는 방법에 대해서 살펴본다.
샘플 데이터는 기존과 동일하게 product를 사용한다.
table product
생성 구문은 다음과 같다.
샘플 데이터들을 그룹으로 묶을 수 있는 방법은 여러 가지가 있다.
종류(type)별로 구분
제조일자(made) 중에서 연도별/월별로 구분
유통기한(expire) 중에서 연도별/월별로 구분
가격(price)을 천원 단위로 구분
이외에도 원하는 방법에 따라 다양하게 그룹화 할 수 있으며, 2,3,4번처럼 항목 값으로 바로 그룹이 되지 않고 계산이 필요한 경우는 코드가 조금 더 복잡해진다.
종류(type)를 이용하여 group을 하기 위한 과정은 다음과 같다.
우선 그룹화에 앞서 항목을 먼저 조회한다.
조회된 항목들을 보면 중복되는 요소들이 있으며, 중복 제거(distinct)가 아닌 그룹화를 통해 데이터를 묶을 수 있다.
group by type
키워드를 통해 type을 기준으로 묶어주며, 다음과 같은 결과가 조회되는 것을 확인할 수 있다.
이렇게 그룹으로 묶인 상태에서 집계 함수를 통하여 원하는 항목을 그룹에 추가하여 확인할 수 있다.
이 외에도 avg, min, max 등을 사용할 수 있다.
그룹을 만들 때 조건을 설정할 수 있다. 이는 WHERE 조건과는 다르며 그룹의 생성 여부에 영향을 미친다.
다음 구문은 분류별 개수가 3개 이상인 그룹을 조회한다.
group만 수행했을 때와 다르게 주류, 사탕, 아이스크림은 기준이 충족되지 않아 그룹으로 설정되지 않았음을 알 수 있다.
오라클 내장 함수 의 그룹 함수 부분을 참조한다.
번호 (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
아이스크림
사탕
과자
과자
주류
주류
과자
아이스크림
사탕
과자
type
아이스크림
사탕
과자
주류
분류
합계
아이스크림
8800
사탕
2100
과자
2200
주류
2000
분류
개수
아이스크림
2
사탕
2
과자
4
주류
2
분류
개수
과자
4