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 제외 후 계산 |