SQL

[SQL#8] COUNT / SUM / AVG / MIN / MAX

j.d 2025. 4. 16. 20:14

SQL에서 데이터를 요약하고 분석할 때 가장 많이 쓰는 것이 집계 함수(aggregate function)입니다.
대표적으로 COUNT, SUM, AVG, MIN, MAX가 있으며, 이 함수들은 여러 행을 하나의 값으로 요약할 때 사용됩니다.

 

이번 글에서는 집계 함수의 기본 사용법과 함께, NULL 처리 방식까지 함께 정리합니다.

 

 

1. COUNT

COUNT 함수는 컬럼별로 몇 개의 행이 존재하는지 세는 함수입니다.

SELECT COUNT(컬럼명) FROM 테이블명;

 

  • COUNT(*): 전체 행 개수 (NULL 포함)
  • COUNT(컬럼명): 해당 컬럼이 NULL이 아닌 행만 집계
SELECT COUNT(*) FROM users;        -- 전체 회원 수
SELECT COUNT(email) FROM users;    -- 이메일이 입력된 회원 수

 

 

 

2. SUM

SUM 함수는 숫자 데이터를 모두 더하는 함수입니다.

SELECT SUM(컬럼명) FROM 테이블명;

 

  • 숫자형 컬럼의 총합을 계산
SELECT SUM(price) FROM orders;     -- 주문 총액

 

 

 

3. AVG

AVG 함수는 숫자 데이터들의 평균을 계산합니다.

SELECT AVG(컬럼명) FROM 테이블명;

 

  • 숫자형 컬럼의 평균값을 반환
SELECT AVG(age) FROM users;        -- 회원 평균 나이

 

 

 

4. MIN / MAX

  • MAX: 가장 큰 값
  • MIN: 가장 작은 값
SELECT MIN(컬럼명), MAX(컬럼명) FROM 테이블명;

 

  • 각각 컬럼의 가장 작은 값가장 큰 값을 반환
SELECT MIN(price), MAX(price)
FROM products;                     -- 상품의 최저가, 최고가

 

 

 

※ NULL 값이 포함된 테이블일 경우

NULL 값의 처리 방식에 따라 결과가 달라질 수 있으므로, 항상 NULL 존재 여부를 고려해 쿼리를 작성해야 합니다.

 

예시 테이블: scores

id name score
1 Alice 85
2 Bob NULL
3 Charlie 90
4 Diana 78
5 Ethan NULL

 

각 함수별 결과

SELECT COUNT(*) FROM scores;
-- 결과: 5 (전체 행 수)
SELECT COUNT(score) FROM scores;
-- 결과: 3 (NULL 제외)
SELECT SUM(score) FROM scores;
-- 결과: 253 (85 + 90 + 78)

SELECT SUM(score) FROM scores;
-- 결과: 253 (85 + 90 + 78)

SELECT AVG(score) FROM scores;
-- 결과: 84.33 (253 ÷ 3)

SELECT MIN(score), MAX(score) FROM scores;
-- 결과: 78, 90

 

NULL  처리 요약

함수 기능 NULL 처리 방식
COUNT(*) 전체 행 수 계산 NULL 포함
COUNT(col) NULL 제외 후 개수 계산 NULL 제외
SUM(col) 총합 계산 NULL 제외 후 합산
AVG(col) 평균 계산 NULL 제외 후 평균
MIN / MAX 최솟값/최댓값 계산 NULL 제외 후 계산