본문 바로가기

IT/DB

SQL쿼리 group by a 와 group by a,b,c 차이

728x90
반응형

 

 

 

 

 

GROUP BY는 SQL에서 데이터를 그룹화하고 각 그룹에 대해 집계 함수(예: COUNT, SUM, AVG 등)를 적용할 때 사용

 

GROUP BY a와 GROUP BY a, b, c의 차이는 그룹화 기준이 되는 열의 수에 있습니다.

 

이 차이는 결과 집합의 그룹 개수와 각 그룹의 상세 수준에 영향을 미칩니다.

 

 

GROUP BY a

  • 기능: 이 구문은 열 a의 값에 따라 데이터를 그룹화합니다.
  • 결과: 동일한 a 값을 가진 모든 행을 하나의 그룹으로 묶습니다. 각 그룹은 a 값별로 하나씩 존재합니다.
  • 예시:
    • 이 쿼리는 테이블에서 각 a 값에 대해 행의 수를 계산합니다.
SELECT a, COUNT(*) FROM table_name GROUP BY a;

 

GROUP BY a, b, c

  • 기능: 이 구문은 열 a, b, c의 조합에 따라 데이터를 그룹화합니다.
  • 결과: 동일한 a, b, c 값을 가진 모든 행을 하나의 그룹으로 묶습니다. 각 그룹은 a, b, c 값의 고유한 조합별로 존재합니다.
  • 예시:
    • 이 쿼리는 테이블에서 각 a, b, c 값의 조합에 대해 행의 수를 계산합니다.
SELECT a, b, c, COUNT(*) FROM table_name GROUP BY a, b, c;

 

차이점

  1. 그룹화 수준:
    • GROUP BY a: 단일 열 a에 대해 그룹화하므로, a 값에 따라 덜 세밀하게 그룹화합니다.
    • GROUP BY a, b, c: 세 개의 열 a, b, c의 조합에 대해 그룹화하므로, 더 세밀하게 그룹화합니다.
  2. 결과 집합의 크기:
    • GROUP BY a: 결과 집합의 그룹 수는 a 값의 고유한 개수와 동일합니다.
    • GROUP BY a, b, c: 결과 집합의 그룹 수는 a, b, c 값의 고유한 조합 개수와 동일합니다.
  3. 사용 사례:
    • GROUP BY a: 특정 열 a 값에 대한 요약 정보를 얻고자 할 때 사용합니다.
    • GROUP BY a, b, c: 여러 열의 조합에 대한 더 자세한 요약 정보를 얻고자 할 때 사용합니다.

 

예제 데이터

다음과 같은 테이블이 있다고 가정해봅시다:

1 A X M 10
2 A X N 20
3 A Y M 30
4 B Y M 40
5 B Z N 50

 

GROUP BY a 쿼리:

 
SELECT a, COUNT(*) FROM table_name GROUP BY a;
 
 
  • 결과:
    A 3
    B 2

 

GROUP BY a, b, c 쿼리:

 

SELECT a, b, c, COUNT(*) FROM table_name GROUP BY a, b, c;
 
 
  • 결과:
    A X M 1
    A X N 1
    A Y M 1
    B Y M 1
    B Z N 1

 

 

위의 예시에서 볼 수 있듯이,

 

GROUP BY a는 a 값에 따라 그룹화하여 덜 세밀한 결과를 제공하고,

 

GROUP BY a, b, c는 세 열의 조합에 따라 그룹화하여 더 세밀한 결과를 제공합니다.

 

 

 

 

 

728x90
반응형