DataBase๐Ÿ’พ

SUM ํ•จ์ˆ˜์—์„œ NULL๊ฐ’ ์ฒ˜๋ฆฌ

hae02y 2022. 8. 24. 14:13
๋ฐ˜์‘ํ˜•

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)
๋ฐ˜์‘ํ˜•