GROUP BY 절은 SQL에서 데이터를 그룹화하고, 각 그룹에 대한 집계 함수를 적용하여 요약된 결과를 얻을 때 사용하는 강력한 도구입니다. 데이터 분석 및 보고서 작성에 필수적으로 사용됩니다.
GROUP BY의 기본 개념GROUP BY는 하나 이상의 컬럼 값을 기준으로 동일한 값을 가진 행들을 하나의 그룹으로 묶습니다. 이렇게 그룹화된 각 그룹에 대해 COUNT(), SUM(), AVG(), MIN(), MAX()와 같은 집계 함수를 사용하여 요약된 정보를 계산할 수 있습니다.
GROUP BY의 기본 문법SELECT column1, column2, ..., aggregate_function(column_name)
FROM table_name
WHERE condition
GROUP BY column1, column2, ...
ORDER BY column1, ...;
SELECT 절:
GROUP BY 절에 명시된 컬럼들 또는 집계 함수를 사용하여 계산된 결과만 올 수 있습니다. GROUP BY에 포함되지 않은 일반 컬럼은 SELECT 절에 올 수 없습니다.FROM 절: 데이터를 가져올 테이블을 지정합니다.WHERE 절 (선택 사항): 그룹화하기 전에 원본 데이터를 필터링합니다.GROUP BY 절:
SELECT 절에 집계 함수 없이 사용된 모든 컬럼은 GROUP BY 절에 포함되어야 합니다.ORDER BY 절 (선택 사항): 그룹화 및 집계된 최종 결과를 정렬합니다.GROUP BY의 작동 원리GROUP BY 절에 지정된 컬럼들의 고유한 조합을 찾습니다.SELECT 절에 명시된 집계 함수를 적용하여 요약 값을 계산합니다.GROUP BY 사용 예시Orders 테이블이 있다고 가정해봅시다:
Orders 테이블:
| OrderID | CustomerID | OrderDate | Amount | Status |
|---|---|---|---|---|
| 1 | 101 | 2023-01-10 | 100.00 | Completed |
| 2 | 102 | 2023-01-15 | 250.00 | Pending |
| 3 | 101 | 2023-01-20 | 150.00 | Completed |
| 4 | 103 | 2023-02-01 | 300.00 | Shipped |
| 5 | 102 | 2023-02-05 | 120.00 | Completed |
| 6 | 101 | 2023-02-10 | 50.00 | Pending |
예시 1: 고객별 총 주문 금액 계산