자격증/SQLD

COUNT 집계 함수

닉네임생각즁 2024. 3. 2. 13:03

 

COUNT(*), COUNT(1), COUNT(2),,,,,,

- 전체 테이블의 행의 수를 출력

- NULL 값 포함해서 행의 수 계산

 

COUNT(컬럼명)

- NULL 제외한 행의 수 계산

 

COUNT(DISTICT 컬럼)

- 중복 제외

- 컬럼이 가지고 있는 고유의 종류의 수를 계산

 

 

 

ex)

[T1]

COL1
1
2
2
3
NULL

 

1) SELECT COUNT(*) FROM T1;

→ NULL 값 포함한 행의 수

→ 5

 

2) SELECT COUNT(1) FROM T1;

COL1 1
1 1
2 1
2 1
3 1
NULL 1

SELECT COL1, 1 FROM T1;

1 값으로 가득 찬 파생 컬럼이 생김

 

→ 1 컬럼에 대해서는 NULL 값이 존재하지 않기 때문에 COUNT(1)은 COUNT(*)와 동일

→ 5

 

 

3) SELECT COUNT(1) FROM T1;

→ NULL 값 제외한 행의 수

→ 4

 

4) SELECT COUNT(DISTINCT COL1) FROM T1;

→ NULL 값 제외하고 행들의 "종류의 수" 계산 (중복X)

3

 

⭐ COUNT 속 DISTINCT 가 아니라면?

SELECT DISTINCT COL1 FROM T1; 

COL1
1
2
3
NULL

 

- 중복된 행 제외하고 출력됨

- NULL 값 또한 하나의 종류로 취급되어 NULL 도 출력됨

 

'자격증 > SQLD' 카테고리의 다른 글

그룹 합수  (0) 2024.03.02
NULL 관련 함수  (2) 2024.03.02
계층형 질의  (1) 2024.03.02
JOIN  (0) 2024.03.01
[SQL 자격검정 실전문제 / 2과목] p.35 9번  (0) 2024.02.28