Computer >> 컴퓨터 >  >> 프로그래밍 >> SQL Server

SQL Server GROUP BY 절 완벽 가이드 – 문법부터 SUM·COUNT·MIN·MAX 활용 예제까지

SQL Server(Transact-SQL)의 GROUP BY 절은 SELECT 문에서 여러 레코드의 데이터를 하나 이상의 열을 기준으로 묶어 그룹별 결과를 조회할 때 사용하는 구문입니다. 주로 SUM, COUNT, MIN, MAX, AVG 같은 집계 함수와 함께 사용되며, 데이터 요약 및 분석 작업에서 핵심적인 역할을 합니다.

SQL Server GROUP BY 절 문법

SELECT expression1, expression2, … expression_n,
ham_tong(expression)
FROM bang
[WHERE dieukien]
GROUP BY expression1, expression2, … expression_n;

매개변수 설명

expression1, expression2, … expression_n
SELECT 절에 포함되지만 집계 함수 안에는 들어있지 않은 표현식입니다. 이 값들은 반드시 GROUP BY 절에도 함께 명시되어야 합니다.

ham_tong
SUM, COUNT, MIN, MAX 또는 AVG 같은 집계 함수를 의미합니다.

bang
레코드를 조회할 대상 테이블입니다. FROM 절에는 최소한 하나의 테이블이 지정되어 있어야 합니다.

WHERE dieukien
선택 사항입니다. WHERE 절에 지정한 조건을 만족하는 레코드만 그룹화 대상으로 선택됩니다.


GROUP BY 절 활용 예제

1. SUM 함수 사용 예제

SELECT product_name, SUM(quantity) AS total_quantity
FROM products
GROUP BY product_name;

위 예제는 SUM 함수를 사용하여 제품명(product_name)별 총 수량을 반환합니다. SELECT 절에서 SUM 함수에 포함되지 않은 열(product_name)을 함께 조회하고 있기 때문에, GROUP BY 절을 반드시 사용해야 합니다.

2. COUNT 함수 사용 예제

SELECT manager_id, COUNT(*) AS employee_count
FROM employees
WHERE last_name = 'Anderson'
GROUP BY manager_id;

이 예제에서 COUNT 함수는 성(last_name)이 'Anderson'인 직원들을 관리자 ID(manager_id)별로 그룹화하여, 각 관리자가 담당하는 직원 수를 반환합니다.

3. MIN 함수 사용 예제

SELECT category, MIN(quantity) AS minimum_quantity
FROM products
GROUP BY category;

GROUP BY 절을 MIN 함수와 함께 사용하면 제품 유형(category)별로 해당 유형의 최소 수량을 구할 수 있습니다.

4. MAX 함수 사용 예제

SELECT department, MAX(salary) AS highest_salary
FROM employees
GROUP BY department;

마지막 예제는 각 부서의 이름(department)과 해당 부서의 최고 급여를 반환합니다.


GROUP BY 절 사용 시 주의사항

- SELECT 절의 모든 비집계 열은 GROUP BY 절에 반드시 포함되어야 합니다.
- 그룹화된 결과에 조건을 적용하려면 WHERE가 아닌 HAVING 절을 사용해야 합니다. WHERE 절은 그룹화 이전 개별 행을 필터링하는 용도입니다.
- GROUP BY 절에는 여러 개의 열을 동시에 지정할 수 있으며, 지정된 순서대로 그룹이 형성됩니다.