문제
아래 SQL에 대한 결과로 알맞은 것은?
SQLSELECT COL1, MIN(COL2), MAX(COL2), SUM(COL2 + COL3) FROM T GROUP BY COL1;
<조건> COL1이 NULL인 그룹에서는 COL2와 COL3 값이 모두 NULL이다.
① COL1이 NULL인 그룹의 MIN, MAX, SUM 결과는 모두 NULL이다. ② COL1이 NULL인 그룹의 MIN, MAX, SUM 결과는 모두 0이다. ③ COL1이 NULL인 그룹은 GROUP BY 결과에서 제외된다. ④ SUM(COL2 + COL3)은 NULL을 0으로 자동 변환하여 계산한다.
정답
1번
해설
정답: 1. 그룹 내 집계 대상 값이 모두 NULL이면 MIN, MAX, SUM 결과는 NULL이 된다.
오답 풀이
- 1번: 모든 집계 대상이 NULL인 경우의 결과로 적절하다.
- 2번: 집계 함수는 NULL을 자동으로 0으로 바꾸지 않는다.
- 3번: GROUP BY에서 NULL은 하나의 그룹으로 묶일 수 있다.
- 4번: NULL이 포함된 산술 연산은 NULL이 된다.
보충 개념 집계 함수는 NULL을 제외하지만, 집계할 값이 모두 NULL이면 SUM, MIN, MAX는 NULL을 반환할 수 있다. COUNT는 대상에 따라 0을 반환할 수 있다.