
COUNT(*) 함수에서 DISTINCT 옵션을 사용하여 중복된 값을 제거한 후 COUNT(*) 함수를 사용했을 때와 GROUP BY 함수를 사용하여 그룹화 한 후 COUNT(*) 함수를 사용하여 그룹의 행 수를 세었을 때의 차이점은 다음과 같습니다.
- COUNT(*) 함수에서 DISTINCT 옵션을 사용하여 중복된 값을 제거한 후 COUNT(*) 함수를 사용했을 때는, 중복된 값을 제거한 후 행 수를 세기 때문에 그룹의 행 수를 정확하게 세어줍니다.
- GROUP BY 함수를 사용하여 그룹화 한 후 COUNT(*) 함수를 사용하여 그룹의 행 수를 세었을 때는, 각 그룹의 행 수를 정확하게 세어줍니다.
예를 들어, 다음과 같은 테이블이 있다고 가정해 보겠습니다.
| 이름 | 국적 |
| --- | --- |
| John | 미국 |
| John | 미국 |
| Jane | 영국 |
| Jane | 영국 |
| Jane | 영국 |
COUNT(*) 함수에서 DISTINCT 옵션을 사용하여 중복된 값을 제거한 후 COUNT(*) 함수를 사용했을 때는, 다음과 같이 중복된 값을 제거한 후 행 수를 세어줍니다.
- SELECT COUNT(DISTINCT 이름) FROM 테이블
- SELECT COUNT(DISTINCT 국적) FROM 테이블
이 경우, 결과는 다음과 같습니다.
- 이름: 2
- 국적: 2
GROUP BY 함수를 사용하여 그룹화 한 후 COUNT(*) 함수를 사용하여 그룹의 행 수를 세었을 때는, 다음과 같이 각 그룹의 행 수를 세어줍니다.
- SELECT COUNT(*) FROM 테이블 GROUP BY 이름
- SELECT COUNT(*) FROM 테이블 GROUP BY 국적
이 경우, 결과는 다음과 같습니다.
- 이름: John (2), Jane (3)
- 국적: 미국 (2), 영국 (3)
따라서, COUNT(*) 함수에서 DISTINCT 옵션을 사용하여 중복된 값을 제거한 후 COUNT(*) 함수를 사용했을 때와 GROUP BY 함수를 사용하여 그룹화 한 후 COUNT(*) 함수를 사용하여 그룹의 행 수를 세었을 때의 차이점은, 중복된 값을 제거한 후 행 수를 세는 것과 각 그룹의 행 수를 세는 것입니다.
2025-07-19 14:02