본문 바로가기
SQL

[MySQL] group by :: n개의 컬럼 사용법

by 옥돔이와 연근이 2025. 3. 28.
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