COL1 | COL2 | COL3 |
10 | 20 | NULL |
15 | NULL | NULL |
50 | 70 | 20 |
🗒️ 해설
1️⃣ SELECT SUM(COL2) FROM TAB1 결과가 NULL인지
- SUM(COL2)는 NULL 값을 무시하고 합계를 계산한다.
- COL2의 값: 20, NULL, 70 ➡️ NULL을 제외하고 계산하면 20+70=90
❌결과는 90 ➡️ 1번은 틀림.
2️⃣ SELECT SUM(COL1 + COL2 + COL3) FROM TAB1 결과가 185인지
- 각 행별로 (COL1+COL2+COL3) 계산:
- 첫 번째 행: 10+20+NULL= NULL
- 두 번째 행: 15+NULL+NULL= NULL
- 세 번째 행: 50+70+20= 140
- SUM()은 NULL 값을 무시하고 남은 값만 더하므로 140만 남는다.
❌ 185와 다름 ➡️ 2번은 틀림.
3️⃣ SELECT SUM(COL2 + COL3) FROM TAB1 결과가 90인지
- 각 행별로 (COL2+COL3) 계산:
- 첫 번째 행: 20+NULL= NULL
- 두 번째 행: NULL+NULL= NULL
- 세 번째 행: 70+20= 90
- SUM() 함수는 NULL을 무시하고 남은 값만 더한다.
✔️ 90이므로 ➡️ 3번은 맞음.
4️⃣ SELECT SUM(COL2) + SUM(COL3) FROM TAB1 결과가 90인지
- SUM(COL2)= 90
- SUM(COL3)= 20
- 90+20= 110
❌ 90과 다름 ➡️ 4번은 틀림.
✏️ 정답: 3번
✒️ SUM() 함수와 NULL
1️⃣ SUM() 함수는 NULL값을 무시한다.
SELECT SUM(value) FROM table;
- value= {10, NULL, 20, 30}
- SUM(value)= 10+20+30= 60 (NULL제외)
2️⃣ NULL이 포함된 연산식(+)은 결과가 NULL이다!
SELECT SUM(col1 + col2) FROM table;
- col1= {10, NULL, 20}, col2= {5, 15, NULL}
- 각 행의 (col1+col2) 결과:
- 10+5= 15
- NULL+15= NULL
- 20+NULL= NULL
- SUM()은 NULL을 제외하므로 결과는 15만 합산 된다.
'📒 SQLD: 노랭이' 카테고리의 다른 글
[SQLD / 노랭이] p. 62: 49번 (0) | 2025.03.03 |
---|---|
[SQLD / 노랭이] p.42: 19번 (0) | 2025.03.02 |
[SQLD / 노랭이] p.49: 28번 (0) | 2025.03.01 |
[SQLD / 노랭이] p.50: 30번 (0) | 2025.02.28 |
[SQLD / 노랭이] p.121: 111번 (0) | 2025.02.28 |