반응형
COUNT
SQL에서 대표적인 집계함수(집합을 다루는 함수)는 다음과 같다.
일반적인 함수는 하나의 값을 인수로 받는 반면 집계함수는 집합을 인수로 받는다.
> COUNT
> SUM
> AVG
> MIN
> MAX
COUNT로 행 개수 구하기
COUNT는 인수로 주어진 집합의 개수를 반환한다.
SELECT COUNT(*) FROM sample51;
SELECT COUNT(*) FROM sample51 WHERE name='A';
- sample51에는 총 5개의 행이 있고, COUNT집계함수에서 *은 '모든열=테이블 전체'를 의미하기 때문에 위 명령은 5를 반환한다. 이는 WHERE구를 지정해 검색 조건을 추가할 수 있다.
집계함수와 NULL 값
- 집계함수는 집합 안에 NULL 값이 있을 경우 이를 제외하고 처리한다.
SELECT COUNT(no), COUNT(name) FROM sample51;
DISTINCT로 중복 제거
- 경우에 따라 집합 안에 중복된 값이 있는지 여부가 문제될 때도 있다. 데이터가 중복되지 않는 경우를 '유일한 값을 가진다'고 표현한다.
- sample51 테이블의 1행과 2행은 name열에서 중복된 값을 갖는다.
- SQL 명령은 이런 중복된 값을 제거하는 DISTINCT 함수를 제공한다.
집계함수에서 DISTINCT
- 특정 열에서 NULL값을 제외하고 중복되지 않는 데이터의 개수를 COUNT하려면 어떻게 해야할까?
- WHERE구에서는 검색조건을 지정할 뿐 DISTINCT같이 중복값을 확인하는 함수는 없다.
- SELECT DISTINCT COUNT(name)은 COUNT가 먼저 실행되기 때문에 안된다.
바로 집계함수의 인수로 DISTINCT를 사용한 수식을 지정하면된다.
SELECT COUNT(ALL name), COUNT(DISTINCT name) FROM sample51;
반응형
'자격증 > SQLD' 카테고리의 다른 글
[SQL 첫걸음] 22강. 그룹화 - GROUP BY (0) | 2022.04.04 |
---|---|
[SQL 첫걸음] 21강. COUNT 이외의 집계함수 (0) | 2022.04.04 |
[SQL 첫걸음] 19강. 물리삭제와 논리삭제 (0) | 2022.04.04 |
[SQL 첫걸음] 18강. 데이터 갱신하기 - UPDATE (0) | 2022.04.04 |
[SQL 첫걸음] 17강. 삭제하기 - DELETE (0) | 2022.04.04 |