본문으로 건너뛰기
실습하기

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_idnameemailregionsalesorders_count
1Client 1client1@example.comTexas804119
2Client 2client2@example.comNew York86193
..................

지역별 고객 수 세기

GROUP BYCOUNT(*)를 함께 사용하면 각 지역에 몇 명의 고객이 있는지 셀 수 있습니다.

-- 지역별 고객 수를 세기
SELECT region, COUNT(*) AS client_count
FROM clients
GROUP BY region;

지역별 총매출

GROUP BYSUM(sales)를 함께 사용하면 각 지역의 총매출을 구할 수 있습니다.

-- 각 지역의 총매출 보여주기
SELECT region, SUM(sales) AS total_sales
FROM clients
GROUP BY region;

지역별 평균 매출

GROUP BYAVG(sales)를 함께 사용하면 각 지역의 평균 매출을 구할 수 있습니다.

-- 각 지역의 평균 매출 보여주기
SELECT region, AVG(sales) AS avg_sales
FROM clients
GROUP BY region;

핵심 정리

  • GROUP BY는 지정한 열(들)에서 값이 같은 행들을 그룹으로 묶습니다.
  • COUNT(), SUM(), AVG() 같은 집계 함수로 각 그룹을 요약합니다.
  • 절의 순서가 중요합니다.
    1. SELECT
    2. FROM
    3. GROUP BY
    4. ORDER BY (그룹 정렬을 위한 선택 사항)

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!