본문 바로가기
Data Engineering

[SQLD 자격검정 실전문제] Part 2-1. 59번 SQL 수행결과 찾기

by 햣둘 2025. 5. 29.

 

정답 : 3번 (90, NULL, 30, 60)

실행 결과는 90, NULL, 30, 60임.

SUM 함수는 NULL을 0으로 처리하지 않음.

또한 NULL값이 포함된 모든 산술 연산의 결과는 NULL이 됨. 

 

1) SELECT SUM(COL2) + SUM(COL3) FROM TAB_A;

SUM(COL2) = NULL + 50 + 10 =60

SUM(COL3) = 20 + 10 + NULL = 30

최종결과 = 60 + 30 = 90

 

2) SELECT SUM(COL2) + SUM(COL3) FROM TAB_A WHERE COL1 > 0;

조건을 만족하는 행 : COL1 = 30인 행만

SUM(COL2) = NULL

SUM(COL3) = 20

최종결과 = NULL + 20 = NULL

 

3) SELECT SUM(COL2) + SUM(COL3) FROM TAB_A WHERE COL1 IS NOT NULL;

조건을 만족하는 행 : COL1 = 30과 0인 행

SUM(COL2) = NULL + 10 = 10

SUM(COL3) = 20 + NULL = 20

최종결과 = 10 + 20 = 30

 

4) SELECT SUM(COL2) + SUM(COL3) FROM TAB_A WHERE COL1 IS NULL;

조건을 만족하는 행 : COL1이 NULL인 행

SUM(COL2) = 50

SUM(COL3) = 10최종결과 = 50 + 10 = 60

[요약 설명]

이 문제는 집계함수 SUM의 동작과 NULL값 처리방식을 이해하고 있는지를 평가함.

집계함수는 NULL값을 무시하고 계산하며, 조건에 따라 집계에 포함되는 행이 달라짐.

[이론적 내용]

SUM함수와 NULL 처리

- 집계함수 SUM은 NULL값을 무시하고 계산함

- ex) SUM(10+NULL+20)은 30으로 계산됨