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;
차이점
- 그룹화 수준:
- GROUP BY a: 단일 열 a에 대해 그룹화하므로, a 값에 따라 덜 세밀하게 그룹화합니다.
- GROUP BY a, b, c: 세 개의 열 a, b, c의 조합에 대해 그룹화하므로, 더 세밀하게 그룹화합니다.
- 결과 집합의 크기:
- GROUP BY a: 결과 집합의 그룹 수는 a 값의 고유한 개수와 동일합니다.
- GROUP BY a, b, c: 결과 집합의 그룹 수는 a, b, c 값의 고유한 조합 개수와 동일합니다.
- 사용 사례:
- 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
반응형
'IT > DB' 카테고리의 다른 글
데이터베이스 SQL 조건절 where 1=1 뜻 (0) | 2024.11.05 |
---|---|
데이터베이스 SQL 서브쿼리 EXIST 함수 사용 (1) | 2024.11.03 |
select 1 from 테이블 쿼리 사용하는 방법 (0) | 2024.11.02 |
데이터베이스 쿼리 범위 조회 LIMIT절 (feat.Cubrid 큐브리드) (0) | 2024.11.02 |
데이터베이스 SQL쿼리 rollup 합계 사용하는 방법 (1) | 2024.11.02 |