GROUP BY
GROUP BY
절은 지정한 열에서 같은 값을 가진 행들을 하나의 그룹으로 묶어 줍니다. 주로 COUNT()
, SUM()
, AVG()
같은 집계 함수와 함께 사용되어 범주별로 데이터를 요약할 때 쓰입니다.
왜 GROUP BY를 사용할까요?
다음과 같은 질문에 답할 수 있습니다.
- 지역별로 주문이 몇 건이었을까?
- 고객별 총매출은 얼마일까?
- 지역별 평균 주문 금액은 얼마일까?
기본 문법
GROUP BY
절은 SELECT
문에서 FROM
절 뒤에 위치합니다.
GROUP BY 구문
SELECT column_name, AGG_FUNCTION(column_name) FROM table_name GROUP BY column_name;
열을 기준으로 그룹을 만든 뒤, 각 그룹에 집계 함수를 적용해 요약합니다.
좋습니다. 지금까지 만든 groupby_numeric.sqlite
와 실습 SQL 코드를 바탕으로, 이어지는 교육 자료를 초보자도 따라 할 수 있도록 작성해 드리겠습니다.
아래 내용은 지금 작성하신 문서에 그대로 이어 붙이면 됩니다.
단계별 실습
clients
테이블을 사용할 것입니다. 이 테이블에는 다음과 같은 데이터가 들어 있습니다.
client_id | name | region | sales | orders_count | |
---|---|---|---|---|---|
1 | Client 1 | client1@example.com | Texas | 8041 | 19 |
2 | Client 2 | client2@example.com | New York | 8619 | 3 |
... | ... | ... | ... | ... | ... |
지역별 고객 수 세기
GROUP BY
와 COUNT(*)
를 함께 사용하면 각 지역에 몇 명의 고객이 있는지 셀 수 있습니다.
-- 지역별 고객 수를 세기 SELECT region, COUNT(*) AS client_count FROM clients GROUP BY region;
지역별 총매출
GROUP BY
와 SUM(sales)
를 함께 사용하면 각 지역의 총매출을 구할 수 있습니다.
-- 각 지역의 총매출 보여주기 SELECT region, SUM(sales) AS total_sales FROM clients GROUP BY region;
지역별 평균 매출
GROUP BY
와 AVG(sales)
를 함께 사용하면 각 지역의 평균 매출을 구할 수 있습니다.
-- 각 지역의 평균 매출 보여주기 SELECT region, AVG(sales) AS avg_sales FROM clients GROUP BY region;
핵심 정리
GROUP BY
는 지정한 열(들)에서 값이 같은 행들을 그룹으로 묶습니다.COUNT()
,SUM()
,AVG()
같은 집계 함수로 각 그룹을 요약합니다.- 절의 순서가 중요합니다.
SELECT
FROM
GROUP BY
ORDER BY
(그룹 정렬을 위한 선택 사항)
Quiz
0 / 1
SQL에서 GROUP BY 절의 주요 목적은 무엇인가요?
데이터베이스 테이블의 행을 정렬한다.
조건에 따라 행을 필터링한다.
지정한 열에서 동일한 값을 갖는 행들을 집계를 위해 그룹화한다.
여러 테이블을 Join한다.
학습 자료
AI 튜터
디자인
업로드
수업 노트
즐겨찾기
도움말
코드 에디터
코드 실행
코드 생성
DB 테이블 구조
실행 결과