학습용 기출·복원자료 분류 확인SQLD · 2025년 59회 SQL 기본 및 활용 · 35번
다음 네 SQL의 결과를 순서대로 올바르게 나열한 것은?
T1
COL1
COL2
COL3
10
NULL
10
NULL
50
10
0
10
10
DBMS: Oracle
ㄱ. SELECT SUM(COL2) FROM T1;
ㄴ. SELECT SUM(COL2) FROM T1 WHERE COL1 > 0;
ㄷ. SELECT SUM(COL2) FROM T1 WHERE COL1 IS NOT NULL;
ㄹ. SELECT SUM(COL2) FROM T1 WHERE COL1 IS NULL;
1
60, 0, 10, 50
오답 이유COL1>0인 행의 COL2가 NULL뿐이어서 둘째 SUM은 0이 아니라 NULL이다. 따라서 1번 보기 ‘60, 0, 10, 50’의 적용 여부를 문제 조건과 대조해야 한다.
2
60, NULL, 60, 50
오답 이유COL1 IS NOT NULL인 행의 COL2는 NULL과 10이므로 NULL을 제외한 합계는 10이지 60이 아니다. 따라서 2번 보기 ‘60, NULL, 60, 50’의 적용 여부를 문제 조건과 대조해야 한다.
3
60, NULL, 10, 50
정답 근거전체 COL2의 합은 50+10=60이다. COL1>0인 행의 COL2는 NULL뿐이라 SUM 결과가 NULL이고, COL1이 NULL이 아닌 행의 합은 10, NULL인 행의 합은 50이다. 따라서 3번 보기 ‘60, NULL, 10, 50’의 적용 여부를 문제 조건과 대조해야 한다.
4
50, NULL, 10, 60
오답 이유전체 COL2 합계는 60이고 COL1 IS NULL인 행의 COL2는 50이므로 첫째와 넷째 값을 바꿀 수 없다. 따라서 4번 보기 ‘50, NULL, 10, 60’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 3번
핵심 판단은 3번 ‘60, NULL, 10, 50’입니다. 전체 COL2의 합은 50+10=60이다. COL1>0인 행의 COL2는 NULL뿐이라 SUM 결과가 NULL이고, COL1이 NULL이 아닌 행의 합은 10, NULL인 행의 합은 50이다.