[SQL, 오라클] NULL값 속성 이해, 집계함수 NULL값, OUTER 조인과 NULL, 문제풀이
* 참고도서
SQL전문가 가이드 2020 개정판 제 4절 NULL값의 이해
* 기본개념
- NULL값의 연산은 언제나 NULL이다.
- 집계함수는 NULL 값을 제외하고 처리한다.
- NULL값으로 가능한 연산은 IS NULL, IS NOT NULL 뿐이다.
* 문제풀이 (집계함수)
이런 데이터를 가지는 tab1 테이블을 생성해보자.
CREATE TABLE tab1 (
col1 number(10),
col2 number(10),
col3 number(10)
);
INSERT INTO tab1 values (10, 20, null);
INSERT INTO tab1 values (15, null, null);
INSERT INTO tab1 values (50, 70, 20);
문제1.
select sum(col1 + col2 + col3) from tab1; 결과는? 140
첫행부터 차례대로 null, null, 140이나, 집계함수는 null값을 포함하지 않으므로 140이다.
문제2.
select sum(col2 + col3) from tab1; 결과는? 90
첫행부터 차례대로 null, null, 90이나, 집계함수는 null값을 포함하지 않으므로 90이다.
문제3.
select sum(col2) from tab1; 결과는? 90
첫행부터 차례대로 20, null, 70이나, 집계함수는 null값을 포함하지 않으므로 90이다.
문제4.
select sum(col2) + sum(col3) from tab1; 결과는? 110
먼저 sum(col2)의 경우 첫행부터 20, null, 70이므로 90 sum(col3)의 경우 첫행부터 null, null, 20이므로 20
90 + 20 = 110
문제5.
select sum(col2) / count(*), avg(col2) from tab1; 결과는? 30 45
sum(col2) / count(*) = 90 / 3 (총건수) = 30
avg(col2) = 90/2 = 45 (null값을 제외하고 처리함)