메뉴 닫기

MSSQL SUM, AVG, MIN, MAX 함수로 쉽고 빠르게 데이터 집계하는 방법

MSSQL SUM, AVG, MIN, MAX 함수로 쉽고 빠르게 데이터 집계하는 방법

📌 SQL 초보도 바로 이해하는 SUM·AVG·MIN·MAX 활용 가이드

데이터 분석이나 리포트를 작성할 때, 숫자 데이터를 빠르고 정확하게 집계하는 것은 매우 중요합니다.
MSSQL에서는 SUM, AVG, MIN, MAX와 같은 기본 집계 함수를 제공하여 합계, 평균, 최소값, 최대값을 간단히 구할 수 있습니다.
이 글에서는 초보자도 바로 이해할 수 있도록 각 함수의 기본 문법부터 실제 예제, 그리고 주의사항까지 단계별로 정리했습니다.
SQL을 처음 배우는 분부터, 보고서 작성 속도를 높이고 싶은 실무자까지 모두에게 도움이 될 만한 내용을 담았으니 끝까지 읽어보세요.

특히, 이 함수들은 단순 계산을 넘어 대용량 데이터에서 패턴을 찾고, 이상치를 확인하며, 비즈니스 인사이트를 도출하는 데 필수적인 도구입니다.
실제 업무 환경에서 자주 쓰이는 집계 쿼리 작성법과, 성능을 고려한 활용 팁도 함께 알려드리겠습니다.
이제 각 함수의 역할과 쓰임새를 구체적으로 살펴보며 SQL 집계의 기초를 다져봅시다.



🔗 SUM 함수로 합계 구하기

MSSQL에서 SUM 함수는 숫자 컬럼의 모든 값을 더해 합계를 계산하는 가장 기본적인 집계 함수입니다.
매출 합계, 재고 수량 합계, 특정 기간 동안의 총 거래 금액 등을 구할 때 자주 사용됩니다.
특히 데이터가 많더라도 MSSQL 엔진이 내부적으로 최적화된 방식으로 연산하므로 빠르게 결과를 얻을 수 있습니다.

🛠️ 기본 문법

CODE BLOCK
SELECT SUM(컬럼명) AS 합계
FROM 테이블명;

이 구문에서 SUM(컬럼명) 부분이 실제 합계를 계산하는 부분입니다.
AS 키워드를 사용해 결과 컬럼에 의미 있는 이름(예: 합계, 총액)을 부여하면 가독성이 좋아집니다.

💡 예제

예를 들어, 판매 테이블(sales)에서 2025년 1월의 매출 합계를 구하고 싶다면 다음과 같이 작성할 수 있습니다.

CODE BLOCK
SELECT SUM(amount) AS 총매출
FROM sales
WHERE sale_date BETWEEN '2025-01-01' AND '2025-01-31';

💎 핵심 포인트:
WHERE 절을 사용하면 특정 조건에 맞는 데이터에 대해서만 합계를 구할 수 있습니다. 이를 통해 기간별, 지역별, 제품별 합계를 유연하게 계산할 수 있습니다.

⚠️ 주의사항

⚠️ NULL 값이 포함된 경우 SUM 함수는 NULL을 무시하고 계산합니다. 만약 NULL을 0으로 처리하고 싶다면 COALESCE(컬럼명, 0) 함수를 함께 사용하는 것이 좋습니다.

🛠️ AVG 함수로 평균 계산하기

MSSQL에서 AVG 함수는 숫자 컬럼의 평균값을 계산하는 데 사용됩니다.
데이터 집계 과정에서 특정 지표의 평균을 구하는 것은 패턴 분석, 성과 평가, 트렌드 파악 등에 매우 유용합니다.
예를 들어, 평균 매출, 평균 근속 연수, 평균 배송 소요 시간 등 다양한 비즈니스 상황에서 활용할 수 있습니다.

📄 기본 문법

CODE BLOCK
SELECT AVG(컬럼명) AS 평균
FROM 테이블명;

AVG 함수는 NULL 값을 제외하고 계산합니다.
만약 NULL을 포함해 계산해야 한다면 COALESCE 함수를 활용해 NULL을 0 또는 다른 값으로 변환한 뒤 평균을 구해야 합니다.

💡 예제

예를 들어, 직원 테이블(employees)에서 전체 직원의 평균 급여를 계산하려면 다음과 같이 작성합니다.

CODE BLOCK
SELECT AVG(salary) AS 평균급여
FROM employees;

💎 핵심 포인트:
AVG 함수는 데이터의 중간값(median)을 구하는 것이 아니라 산술 평균을 구합니다. 데이터에 극단적인 값이 포함되어 있다면 평균이 왜곡될 수 있으므로, 이 경우 중앙값이나 기타 통계값과 함께 비교하는 것이 좋습니다.

⚠️ 주의사항

⚠️ NULL 처리 평균 계산 시 NULL 값은 자동으로 제외되므로, 데이터에 결측치가 많을 경우 평균값이 실제보다 높거나 낮게 나올 수 있습니다.



⚙️ MIN 함수로 최소값 찾기

MSSQL에서 MIN 함수는 숫자, 날짜, 문자열 컬럼에서 가장 작은 값을 반환합니다.
숫자 컬럼에서는 최소값을, 날짜 컬럼에서는 가장 오래된 날짜를, 문자열 컬럼에서는 사전순으로 가장 앞서는 값을 찾을 수 있습니다.
데이터에서 시작점이나 기준값을 확인할 때 자주 쓰입니다.

📄 기본 문법

CODE BLOCK
SELECT MIN(컬럼명) AS 최소값
FROM 테이블명;

MIN 함수는 집계 함수이므로, GROUP BY 절과 함께 사용하면 각 그룹별 최소값을 구할 수 있습니다.
이를 통해 부서별 최저 급여, 카테고리별 최저 가격 등을 쉽게 계산할 수 있습니다.

💡 예제

예를 들어, 상품 테이블(products)에서 가장 저렴한 상품 가격을 구하려면 다음과 같이 작성합니다.

CODE BLOCK
SELECT MIN(price) AS 최저가격
FROM products;

💎 핵심 포인트:
MIN 함수는 NULL 값을 무시하고 계산합니다. 또한 문자열 컬럼에 사용하면 ASCII 코드 기준으로 가장 작은 값(사전순 앞선 값)을 반환하므로 데이터 타입에 따라 결과가 달라질 수 있습니다.

⚠️ 주의사항

⚠️ 문자열 최소값을 구할 때는 데이터 정렬 기준을 반드시 확인하세요. 데이터 정렬 설정(COLLATION)에 따라 한글, 영문, 숫자의 순서가 달라질 수 있습니다.

🔌 MAX 함수로 최대값 찾기

MSSQL에서 MAX 함수는 숫자, 날짜, 문자열 컬럼에서 가장 큰 값을 반환하는 집계 함수입니다.
숫자 컬럼에서는 최대값, 날짜 컬럼에서는 가장 최근 날짜, 문자열 컬럼에서는 사전순으로 가장 뒤에 오는 값을 확인할 수 있습니다.
데이터 분석에서 최고값을 찾거나 최신 데이터를 조회할 때 매우 유용합니다.

📄 기본 문법

CODE BLOCK
SELECT MAX(컬럼명) AS 최대값
FROM 테이블명;

MAX 함수는 단일 값뿐만 아니라 GROUP BY 절과 함께 사용하여 그룹별 최대값을 구할 수 있습니다.
이를 통해 부서별 최고 매출, 카테고리별 최고 가격 등을 쉽게 산출할 수 있습니다.

💡 예제

예를 들어, 주문 테이블(orders)에서 가장 최근 주문일을 확인하려면 다음과 같이 작성합니다.

CODE BLOCK
SELECT MAX(order_date) AS 최근주문일
FROM orders;

💎 핵심 포인트:
MAX 함수는 최신 날짜나 가장 큰 수치를 빠르게 확인할 때 유용합니다. 다만, 데이터 정렬 설정(COLLATION)에 따라 문자열의 최대값 판단 기준이 달라질 수 있으므로 데이터 타입을 적절히 지정하는 것이 좋습니다.

⚠️ 주의사항

⚠️ NULL 값 처리 MAX 함수 역시 NULL 값을 무시하고 계산합니다. 최신 데이터 조회 시 NULL이 존재하면 결과에 영향을 미치지 않지만, 데이터의 완전성을 위해 NULL 발생 원인을 확인하는 것이 좋습니다.



💡 GROUP BY와 함께 집계 함수 사용하기

MSSQL에서 GROUP BY 절은 데이터를 특정 컬럼 기준으로 그룹화하여 집계 함수를 적용할 때 사용합니다.
SUM, AVG, MIN, MAX와 같은 집계 함수는 단독으로도 사용할 수 있지만, GROUP BY와 함께 사용하면 그룹별 통계치를 구할 수 있어 분석의 깊이가 달라집니다.

📄 기본 문법

CODE BLOCK
SELECT 그룹컬럼, 집계함수(컬럼명) AS 결과
FROM 테이블명
GROUP BY 그룹컬럼;

이 문법을 사용하면, 예를 들어 부서별 평균 급여, 카테고리별 총 매출, 월별 주문 건수 등을 구할 수 있습니다.
GROUP BY는 집계 함수와 세트로 자주 쓰이는 절입니다.

💡 예제

판매 테이블(sales)에서 카테고리별 매출 합계를 구하는 예제입니다.

CODE BLOCK
SELECT category, SUM(amount) AS 총매출
FROM sales
GROUP BY category;

💎 핵심 포인트:
GROUP BY 절을 사용할 때는 SELECT 절에 포함된 컬럼이 모두 GROUP BY 절에도 포함되어야 합니다(집계 함수로 계산된 컬럼은 예외). 이 규칙을 지키지 않으면 오류가 발생합니다.

⚠️ 주의사항

⚠️ HAVING 절 활용 집계 함수 결과를 조건으로 필터링할 때는 WHERE 절이 아닌 HAVING 절을 사용해야 합니다. 예를 들어, 총매출이 1,000,000 이상인 카테고리만 조회하려면 HAVING SUM(amount) >= 1000000 과 같이 작성합니다.

자주 묻는 질문 (FAQ)

SUM 함수는 NULL 값을 어떻게 처리하나요?
SUM 함수는 NULL 값을 무시하고 계산합니다. NULL을 0으로 간주하고 합계를 구하려면 COALESCE(컬럼명, 0)을 사용하세요.
AVG 함수와 중앙값(MEDIAN)의 차이는 무엇인가요?
AVG 함수는 산술 평균을 계산하며, 데이터의 극단값에 영향을 받습니다. MEDIAN은 데이터의 중앙값을 반환하여 극단값의 영향을 줄입니다.
MIN 함수로 날짜 데이터의 최소값을 구할 수 있나요?
네. MIN 함수는 날짜형 컬럼에서 가장 오래된 날짜를 반환합니다.
MAX 함수로 문자열의 최대값을 구하면 어떤 기준인가요?
문자열의 경우 정렬 순서(COLLATION)에 따라 사전순으로 가장 뒤에 오는 값이 반환됩니다.
GROUP BY와 WHERE 절은 함께 사용할 수 있나요?
네. WHERE 절로 그룹화 전에 데이터를 필터링하고, GROUP BY로 집계할 수 있습니다.
집계 결과에 조건을 걸 때는 WHERE와 HAVING 중 무엇을 써야 하나요?
집계 결과 조건은 HAVING 절을 사용해야 합니다. WHERE 절은 집계 전 데이터에 조건을 걸 때 사용합니다.
SUM과 COUNT를 동시에 사용할 수 있나요?
네. SELECT 절에 SUM, COUNT 등 여러 집계 함수를 함께 사용할 수 있습니다.
집계 함수에 DISTINCT를 적용할 수 있나요?
가능합니다. 예를 들어 SUM(DISTINCT 컬럼명)은 중복을 제거한 후 합계를 계산합니다.

📌 집계 함수로 데이터 분석 효율 높이기

MSSQL의 SUM, AVG, MIN, MAX 함수는 데이터 집계의 기본이자 필수 도구입니다.
이 함수들을 활용하면 대량의 데이터를 빠르게 분석하고, 비즈니스 의사결정에 필요한 핵심 지표를 도출할 수 있습니다.
또한 GROUP BY 절과 결합하면 다양한 기준으로 데이터를 분류해 세부적인 통계를 확인할 수 있습니다.
실무에서는 단순 합계나 평균뿐 아니라, 조건을 설정하여 특정 범위나 그룹에 대한 분석을 수행하는 경우가 많습니다.
따라서 집계 함수의 기본 문법, 동작 원리, 주의사항을 충분히 이해하고 사용하는 것이 중요합니다.
이번 글에서 소개한 예제와 팁을 참고하면 초보자도 손쉽게 집계 쿼리를 작성할 수 있으며, SQL을 활용한 데이터 분석 역량을 한층 높일 수 있을 것입니다.


🏷️ 관련 태그 : MSSQL, SUM함수, AVG함수, MIN함수, MAX함수, SQL집계, 데이터분석, GROUPBY, SQL초보, SQL쿼리, 데이터집계