📒 SQLD: 노랭이

[SQLD / 노랭이] p.63: 50번

haeriyouu 2025. 3. 1. 16:18
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