728x90
반응형
⛈️ 1. 하나의 컬럼으로 GROUP BY
하나의 컬럼을 사용해서 GROUP BY를 수행하면, 그 컬럼의 값이 동일한 모든 행들이 그룹화됩니다. 즉, 그 컬럼의 각 고유한 값이 그룹을 형성하고, 각 그룹에 대해 집계 함수(예: SUM, COUNT, AVG 등)를 적용할 수 있습니다.
예를 들어, 판매 데이터를 다루는 테이블이 있다고 가정해 봅시다.
SELECT product_category, SUM(sales_amount)
FROM sales
GROUP BY product_category;
이 쿼리는 product_category 컬럼의 각 값별로 sales_amount를 합산합니다. 결과적으로 각 제품 카테고리별 총 판매 금액을 얻을 수 있습니다.
⛈️ 2. 여러 개의 컬럼으로 GROUP BY
여러 개의 컬럼을 사용해서 GROUP BY를 수행하면, 지정한 모든 컬럼의 조합이 동일한 행들이 그룹화됩니다. 즉, 지정한 모든 컬럼이 동일한 행들끼리 그룹을 형성하고, 각 그룹에 대해 집계 함수를 적용합니다.
위와 같은 판매 데이터를 사용하되, 이제 product_category와 sales_region을 그룹화한다고 가정해 보겠습니다.
SELECT product_category, sales_region, SUM(sales_amount)
FROM sales
GROUP BY product_category, sales_region;
이 쿼리는 product_category와 sales_region의 조합별로 sales_amount를 합산합니다. 결과적으로 각 제품 카테고리와 지역 조합별로 총 판매 금액을 얻을 수 있습니다.
⛈️ 차이점 요약
- 하나의 컬럼 GROUP BY: 단일 컬럼의 값별로 그룹을 형성하여 집계합니다. 집계 결과는 그 컬럼의 고유 값들에 따라 나옵니다.
- 여러 개의 컬럼 GROUP BY: 지정한 모든 컬럼의 조합별로 그룹을 형성하여 집계합니다. 집계 결과는 각 컬럼의 조합에 따라 나옵니다.
⛈️ 예제 데이터
- 하나의 컬럼 GROUP BY (product_category):
| product_category | SUM(sales_amount) |
|------------------|--------------------|
| Electronics | 3500 |
| Furniture | 2200 |
- 여러 개의 컬럼 GROUP BY (product_category, sales_region):
| product_category | sales_region | SUM(sales_amount) |
|------------------|--------------|--------------------|
| Electronics | North | 2500 |
| Electronics | South | 1500 |
| Furniture | North | 1000 |
| Furniture | South | 1200 |
이와 같이, GROUP BY를 사용하는 방법에 따라 데이터 집계의 방식과 결과가 달라집니다.
728x90
'SQL' 카테고리의 다른 글
[MySQL] group by :: n개의 컬럼 사용법 (0) | 2025.03.31 |
---|---|
[SQL] NULL 관련 함수(NULLIF, COALESCE,) 및 문자열 치환(REPLACE) (0) | 2025.03.28 |