SUM()ํจ์์์ NULL๊ฐ์ ์ฒ๋ฆฌ
์ปฌ๋ผ๊ฐ์ด NULL์ธ ๊ฒฝ์ฐ ์ฌ์น์ฐ์ฐ์ ํ ๊ฒฝ์ฐ ๊ฒฐ๊ณผ๊ฐ์ ๋ชจ๋ NULL์ด ๋๊ฒ ๋๋ค. ์ด๋ฐ ๊ฒฐ๊ณผ๋ก,
SUM()ํจ์์์ NULL๊ฐ์ ๊ณตํฌ๋ก ์ธํด ์ฐ๋ฆฌ๊ฐ ํจ๋ถ๋ก NVL()ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋นํจํผ์ด ๋ฐ์ํ๋ค.
์๋ฅผ ๋ค์ด ์๋์ ๊ฒฝ์ฐ๋ฅผ ์ดํด๋ณด์.
SUM(NVL(COL1,0)) |
์ฌ๊ธฐ์ COL1 ์ปฌ๋ผ์ SUM()ํจ์์ ์ํ์ฌ ์ฐ์ฐ์ด ๋๋ค. ์ฐ์ฐ์ค NULL๊ฐ์ด ์์ด ์ ์ฒด ๊ฒฐ๊ณผ๊ฐ NULL๊ฐ์ด ๋ ๊น ๋๋ ค์ ์ด๋ ๊ฒ ์ฌ์ฉํ๋ค๋ฉด ์ด๊ฒ์ ์๋ชป๋ ์๊ฐ์ด๋ค.
SUM()ํจ์์์ ๋จ์ผ ์ปฌ๋ผ์ด ์ฐ์ฐ์ด ๋ ๋์๋ NULL๊ฐ์ ์ฐ์ฐ์ ๋์์์ ์ ์ธ๋๋ค. NULL๊ฐ์ด ์ฐ์ฐ์ ํ์ง ์์์ผ๋ฏ๋ก ๊ฒฐ๊ณผ๋ ์ ๋ NULL๊ฐ์ด ๋์ง ์๋๋ค. ์ ์ฒ๋ผ NVL()ํจ์๋ฅผ ์ฌ์ฉํ์ฌ NULL๊ฐ์ ๊ฐ์ง ๊ฒฝ์ฐ ‘0’์ผ๋ก ๋ฐ๊พธ์ด๋ ๊ฒฐ๊ณผ๋ ๋์ผํ๋ค. ๊ทธ๋ฌ๋ SUM()ํจ์ ๋ด์ NVL()๋ฅผ ์ฐ๋ ๊ฒ์ ๋ถํ์ํ ์ฐ์ฐ๋ง ์ฆ๊ฐ์ํค๋ ๊ฒ์ด๋ค.
‘0’์ ๋ํ๋ ๊ฒ๋ ์ฐ์ฐ์ด๊ธฐ ๋๋ฌธ์ด๋ค. ์๋ฅผ ๋ค์ด SUM()ํจ์๋ฅผ ์ด์ฉํ Row๊ฐ 10๋ง์ด๊ณ ๊ทธ์ค NULL๊ฐ์ ๊ฐ์ง ๊ฒฝ์ฐ๊ฐ 9๋ง์ด๋ผ๊ณ ํ๋ค๋ฉด ๋ถํ์ํ ์ฐ์ฐ์ 9๋ง๋ฒ์ด๋ ๋ ์ํํ๋ ๊ฒ์ด ๋๋ค.
์ฌ์ค ์ด์ ๊ฐ์ ์๋ชป์ ์ ์ง๋ฅด๋ ์ด์ ๋ NULL๊ฐ์ ์ฐ์ฐ์ ๋ํ ๋ฌด์ง๋ณด๋ค๋ ์ต์ข ์ผ๋ก ์ถ์ถ๋๋ ๊ฒฐ๊ณผ๊ฐ NULL๊ฐ์ธ ๊ฒจ์ฐ์ ํ๋ฉด์ ๊ณต๋ฐฑ์ด ์ถ์ถ๋์ด ๋ณด์ด๋ฏ๋ก ์ด๋ฅผ ‘0’์ผ๋ก ์ฑ์ฐ๊ณ ์ถ์ด์ ๊ทธ๋ ๊ฒ ํ ๊ฒฝ์ฐ์ผ ๊ฒ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด๋ฐ ๊ฒฝ์ฐ๋ ์๋์ ๊ฐ์ด ํ์ฌ์ผ ํ๋ค.
NVL(SUM(COL1),0) |
๋ฐ๋ก ์ ๋ฌธ์ฅ์ ์์ ์์ ๊ฒฝ์ฐ์ ํฐ ์ฐจ์ด๊ฐ ์์ด ๋ณด์ด์ง๋ง ์ฒ๋ฆฌํ ์ผ์ ์์๋ ํฐ ์ฐจ์ด๊ฐ ๋๋ค.
์กฐ๊ธ์ ์ ๊ฐ์ ํ๋ฏ์ด Row 10๋ง ๊ฑด์ด ์๋ค๊ฐ ํ์ ๋ ์ ์ฒด ๊ฐ์ด NULL์ธ ๊ฒฝ์ฐ์ ์์ ์๋ 10๋ง ๋ฒ์ด๋ ‘0’์ ๋ํ๋ ์ฐ์ฐ์ ํ์ฌ ‘0’์ ์ถ๋ ฅํ์ง๋ง ๋ฐ๋ก ์์ ์๋ ํ๋ฒ๋ ์ฐ์ฐ์ ํ์ง ์๊ณ ‘0’์ ์ถ๋ ฅํ๊ฒ ๋๋ค.
์ด๋ฒ์๋ ๋ ์ปฌ๋ผ์ ์ฐ์ฐ์ด ์๋ ๊ฒฝ์ฐ๋ฅผ ์ดํด๋ณด๋๋ก ํ๊ฒ ๋ค.
์๋ฅผ ๋ค์ด ์๋์ ๊ฐ์ด ๋ฐ์ดํฐ๊ฐ ๋ค์ด ์๋ค๊ณ ํ์ ๊ฒฝ์ฐ ์ด๋ค ๊ฒฐ๊ณผ๊ฐ ๋์ค๋์ง ํ์ธํด ๋ณด์.
ROW | COL1 | COL2 |
1 | NULL | NULL |
2 | 1 | NULL |
3 | 1 | 1 |
* ์คํ๊ณผ ๊ฒฐ๊ณผ
SELECT SUM(COL1), SUM(COL1+NULL), SUM(COL1+COL2) FROM ํ ์ด๋ธ๋ช —————————————————————————2 NULL 2 |
์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด SUM(COL1)์ ๋งจ ์ฒ์ ์ค๋ช ํ๋ ๋๋ก ๊ฒฐ๊ณผ๊ฐ ๋์ ๋ฌธ์ ๊ฐ ์๋ค.
๊ทธ๋ฐ๋ฐ SUM(COL1+COL2)์ “3”์ด ๋์ฌ ์ค ์์๋๋ฐ “2”๋ง ๋์๋ค.
SUM ํจ์๊ฐ ์ ๊ณตํด์ฃผ๋ ํธ์๋ ์ด๋ป๊ฒ ๋ณด๋ฉด ์ ๊ณต ํด ์ฃผ๋ค๊ฐ ๋ง ๋ฏํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ธ๋ค.
์ด ํจ์๊ฐ ๋์ผํ ์ปฌ๋ผ ๋ด์ NULL์ฐ์ฐ์ ์ฒ๋ฆฌํด ์ฃผ์ง๋ง ์ปฌ๋ผ๋ณ ์ฐ์ฐ์ ์ฒ๋ฆฌ๋ฅผ ๋ชปํ๋ค. ๋ค์ ๋งํด, 1ROW์ 2ROW์๋ ๊ฐ ์ปฌ๋ผ์ NULL์ ํฌํจํ๊ณ ์๊ธฐ ๋๋ฌธ์ NULL์ฒ๋ฆฌ๋๊ณ , ์ค์ง์ ์ผ๋ก 3ROW๋ง ์ ์์ ์ผ๋ก ์ฒ๋ฆฌํ๊ฒ ๋๋ค.
๋ฐ๋ผ์, SUM์์์ ์ปฌ๋ผ๋ณ ์ฐ์ฐ์ ํ ๋์๋ NULL์ ์ ๋ฐํ ์ ์๋ ๊ฒ๋ค์ ๋ฐ๋์ ์ ๊ฑฐํด์ผ ํ๋ค.
์ด๋ฐ ๊ฒฝ์ฐ๋ ์๋์ ๊ฐ์ด ์ฒ๋ฆฌํ๋ฉด ๋๊ฒ ๋ค.
NVL(SUM(COL1),0)+ NVL(SUM(COL2),0) |