원본 행 → 그룹 → 결과 행
GROUP BY는 같은 값을 묶어 그룹당 1행으로 줄인다
category
가 같은 행끼리 먼저 묶고, 그 안에서
COUNT
,
AVG
,
SUM
을 계산합니다.
결과 행 수
= 그룹 수
1. 원본 행
아직은 상품별로 따로 존재
id
category
price
stock
1
전자
150000
10
2
전자
50000
30
3
식품
5000
100
4
식품
3000
200
2. 묶는 기준
같은 category 값은 같은 그룹
GROUP BY category
집계 함수는 전체 테이블이 아니라 각 그룹 내부 값만 계산합니다.
전자 그룹
행 1, 2
COUNT(*)
2
AVG(price)
100000
SUM(stock)
40
식품 그룹
행 3, 4
COUNT(*)
2
AVG(price)
4000
SUM(stock)
300
3. 결과 행
그룹마다 한 줄만 남음
category
상품수
평균가격
총재고
전자
2
100000
40
식품
2
4000
300