집계 함수(Aggregate Function)에서는 NULL 값을 무시한다
이 말은, 집계 함수가 데이터를 계산할 때 NULL 값을 계산 대상에 포함하지 않고 계산한다는 것을 의미한다. 쉽게 말해, 집계 함수는 NULL을 데이터가 없는 것으로 간주하고 제외한 후 결과를 계산한다.
따라서 NULL 값을 처리할 때는 집계 결과에 영향을 미치지 않으니, 필요에 따라 COALESCE 함수 등을 사용해 NULL을 다른 값으로 대체하는 방식을 사용할 수도 있다.
NULL 처리 방식SUM (합계)
NULL 값을 무시하고 나머지 숫자 값만 합산한다. SUM(값)은 NULL을 포함하지 않은 값들만 더한 결과를 반환한다.AVG (평균)
NULL 값을 제외한 나머지 숫자 값의 평균을 계산한다. AVG = (합계 / NULL이 아닌 값의 개수) NULL이 있더라도 나머지 값들로만 평균을 구한다.COUNT (개수)
COUNT(*): NULL을 포함한 전체 행의 개수를 반환한다. COUNT(컬럼): 해당 컬럼에서 NULL이 아닌 값의 개수를 반환한다.MAX / MIN (최대값 / 최소값)
NULL을 제외한 값들 중에서 최대값과 최소값을 반환한다.다음과 같은 데이터가 있다고 가정하자:
| 값 |
|---|
| 10 |
| NULL |
| 20 |
| 30 |
SUM 함수SELECT SUM(값) AS 합계 FROM 테이블;
10 + 20 + 30 = 6060AVG 함수SELECT AVG(값) AS 평균 FROM 테이블;
합계 / NULL이 아닌 값의 개수 = 60 / 320COUNT 함수SELECT COUNT(*) AS 전체행, COUNT(값) AS 값개수 FROM 테이블;
COUNT(*): 전체 행의 개수(4개)를 반환 (NULL 포함).COUNT(값): NULL이 아닌 값만 세기 때문에 3을 반환.전체행 = 4, 값개수 = 3MAX / MIN 함수SELECT MAX(값) AS 최대값, MIN(값) AS 최소값 FROM 테이블;
3010NULL은 무시되므로 계산에 포함되지 않음.