Database/SQL

[SQL] #05 SQL 집계 함수(count, sum, avg, max, min)와 Group by

TOASTDEV 2025. 7. 27. 16:00
반응형

 

 

안녕하세요 토스트데브입니다.
이번 글에서는 SQL의 집계함수와 Group by에 대해 알아보도록 할게요!

데이터를 요약하고 그룹별로 분석하는 방법

 

 

 

✅ 집계 함수란?

집계 함수(Aggregate Functions)는 여러 행의 데이터를 모아서 하나의 결과값으로 요약해주는 SQL 함수입니다.

예: “회원 수가 몇 명이지?”, “총 판매 금액은 얼마야?”

 

📌 주요 집계 함수 목록

함수 설명 예시
COUNT() 행의 개수 세기 COUNT(*) → 총 행 수
SUM() 합계 구하기 SUM(price)
AVG() 평균 구하기 AVG(score)
MAX() 최대값 구하기 MAX(salary)
MIN() 최소값 구하기 MIN(age)

 

📌 예시

SELECT COUNT(*) FROM users;
SELECT AVG(score) FROM exams;
SELECT SUM(amount) FROM orders;

 

 

✅ GROUP BY란?

GROUP BY같은 값을 가진 데이터를 묶어서(grouping) 그룹별로 집계 함수의 결과를 구할 때 사용합니다.

 

📌 기본 문법

SELECT 그룹기준컬럼, 집계함수
FROM 테이블명
GROUP BY 그룹기준컬럼;

 

🎯 예제 1: 부서별 직원 수

SELECT department, COUNT(*) AS 직원수
FROM employees
GROUP BY department;

➡️ 부서별로 몇 명의 직원이 있는지 확인

 

🎯 예제 2: 카테고리별 평균 가격

SELECT category, AVG(price) AS 평균가격
FROM products
GROUP BY category;

➡️ 각 상품 카테고리별 평균 가격 구하기

 

🎯 예제 3: 조건이 있는 그룹화 (WHERE + GROUP BY)

SELECT region, SUM(sales) AS 총매출
FROM stores
WHERE year = 2025
GROUP BY region;

➡️ 2025년 기준으로 지역별 총 매출

 

🎯 예제 4: 그룹 조건 필터링 (HAVING)

SELECT department, AVG(salary) AS 평균급여
FROM employees
GROUP BY department
HAVING AVG(salary) > 3000;

➡️ 평균 급여가 3000 이상인 부서만 조회
📌 HAVING은 GROUP BY 이후의 조건 필터링에 사용됩니다.

 

 

📝 마무리

  • GROUP BY와 집계 함수는 대량의 데이터를 요약하고 분석하는 데 매우 유용합니다.
  • 실무에서는 매출 분석, 사용자 통계, 부서별 성과 등 보고서 자동화의 핵심이죠!
  • HAVING은 WHERE 대신 그룹화된 결과를 필터링할 때 사용된다는 점, 꼭 기억하세요.

 

 

#SQL #SQL기초 #GROUPBY #집계함수 #데이터분석 #데이터요약 #SQL문법 #쿼리작성법 #DBMS #웹개발 #MySQL #SQL강의 #SQL예제 #HAVING

반응형