Day 18
Last updated
Was this helpful?
Last updated
Was this helpful?
SQL์๋ ์์ฃผ ๋ง์ด ์ฌ์ฉํ๋ ๋ํ์ ์ธ SQL๋ฌธ์ด ์ฌ๋ฌ๊ฐ ์๋ค ์ด๋ฒ์๋ COUNT์ด๋ผ๋ ํจ์๋ฅผ ๋ณผ ๊ฒ์ด๋ค
SQL์ ์งํฉ์ ๋ค๋ฃจ๋ ์ง๊ณํจ์๋ฅผ ์ ๊ณตํด์ฃผ๊ณ ์ผ๋ฐ์ ์ผ๋ก ํจ์๋ ์ธ์๋ก ํ๋์ ๊ฐ์ ์ง์ ํ๋๋ฐ ๋นํด ์ง๊ณํจ์๋ ์ธ์๋ก ์งํฉ์ ์ง์ด๋ฃ๋๋ค ์์๋ก COUNT ํจ์๋ ์ธ์๋ก ์ฃผ์ด์ง ์งํฉ์ ๊ฐฏ์๋ฅผ ๊ตฌํด์ ๋ฆฌํดํด์ค๋ค
์ด๋ ๊ฒ ๋ด๋ณด๋ฉด ๊ทธ๋ฅ SELECT๋ฅผ ๋๋ ค๋ณด๋ฉด 5๊ฐ์ ํ์ด ํ์ด๋์ค๊ณ COUNT(*) ์ ์ฒด๋ฅผ ์กฐํํด๋ณด๋ฉด 5๊ฐ๋ผ๊ณ ์ซ์๋ก ํํํด์ฃผ๊ณ ์๋ค ์๋ ์๋ ๋ดค๊ฒ ์ง๋ง *(์์ผ๋์นด๋)๋ ๋ชจ๋ ์ด์ ์๋ฏธํ๊ณ , COUNTํจ์์์๋ ํ ์ด๋ธ ์ ์ฒด๋ผ๋ ์๋ฏธ๋ก ์ฌ์ฉ๋๋ค COUNT๋ ์ธ์๋ก ์ง์ ๋ ์งํฉ์ ๊ฐฏ์๋ก ๊ณ์ฐ๋๋ ๊ฒ์ด๋ค
์ง๊ณํจ์์ ํน์ง์ ๋ณต์์ ๊ฐ์์ ํ๋์ ๊ฐ์ ๊ณ์ฐํด๋ด๋ ๊ฒ์ด๋ค. ์ผ๋ฐ์ ์ผ๋ก ํจ์๋ ํ๋์ ํ์ ๋ํ์ฌ ํ๋์ ๊ฐ์ ๋ฐํํ๋๋ฐ, ์ง๊ณํจ์๋ ์งํฉ์ผ๋ก๋ถํฐ ํ๋์ ๊ฐ์ ๋ฐํํ๊ณ ์ด๋ ๊ฒ ๋ค์์ ์งํฉ์ผ๋ก๋ถํฐ ํ๋์ ๊ฐ์ ๋์ถํด๋ด๋ ๊ฒ์ ์ง๊ณ๋ผ๊ณ ๋ถ๋ฅธ๋ค ๊ทธ๋ฆฌ๊ณ ์ง๊ณํจ์๋ฅผ SELECT์ ์ฌ์ฉํ๋ฉด WHERE์ ์ด ์๋ ์๋ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ํ๋์ ํ๋ง ๋ฆฌํดํจ
WHERE ๊ตฌ ์ง์
์ฌ๊ธฐ์ ๋ณด๋ฉด WHERE์ ์ ์กฐ๊ฑด์ 2๊ฐ ๋ฃ์ด์ฃผ๊ณ ์ฟผ๋ฆฌํ๋ฉด 2๊ฐ์ ๊ฐ์ด ํ์ด๋์ค์ง๋ง count ํจ์๋ฅผ ์ฌ์ฉํ๋๊น 2๊ฐ์ ์กฐ๊ฑด์ ์ธ์ 2๋ผ๋ ๊ฐ์ผ๋ก ํ๋์ ํ์ ์ถ๋ ฅํ๊ณ ์๋ ๊ฒ์ ๋ณผ ์ ์๋ค
COUNT์ ์ธ์๋ก ์ด๋ช ์ ์ง์ ํด์ค ์ ์๋๋ฐ, ์ด๋ ๊ฒ ์ง์ ํ๋ฉด ๊ทธ ์ด ๋ด๋ถ์์ ํ์ ๊ฐฏ์๋ฅผ ๊ตฌํ ์ ์๋ค ์ด๋ ๊ฒ ๊ฐฏ์๋ฅผ ๊ตฌํ๋ ๊ณผ์ ์์ ์ค์ํ๊ฑด NULL์ ๋ํ ์ฒ๋ฆฌ์ด๋ค -> ์ผ๋จ ์ง๊ณํจ์๋ ์งํฉ ์์ NULL๊ฐ์ด ์๋ค๋ฉด ์ ์ธํ๊ณ ์ฒ๋ฆฌํ๋ค, ์ฆ ๋ฌด์ํ๋ค๊ณ ์๊ฐ
SELECTํ ๋ ๋ดค๋์ง ์๋ดค๋์ง๋ ๊ฐ๋ฌผ๊ฐ๋ฌผํ์ง๋ง ์ผ๋จ DISTINCT๋ฅผ ์ฌ์ฉํ๊ฒ๋๋ฉด ๋ง์ฝ ์ค๋ณต๋ ๊ฐ์ด ์๋ค๋ฉด ์ค๋ณต๋ ๊ฐ์ ์ณ๋ด๊ณ ํ๋๋ง ์ถ๋ ฅํ๊ฑฐ๋ ๊ธฐ์ค์ผ๋ก ์ผ๋ ๊ทธ๋ฐ ๋ช ๋ น์ด์ด๋ค ๋ญ ๊ธธ๊ฒ ์ ์์ง๋ง ์ค๋ณต๋ ๊ฐ์ ์ ๊ฑฐํ๋ ํจ์์ด๊ณ ์ด๊ฑธ ์ฌ์ฉํด์ ์ค๋ณต์ ์ณ๋ด๊ณ ์ฌ์ฉํ ์ ์๋ค DISTINCT์ ๋ฐ๋ ์์ฝ์ด๋ก๋ ALL์ด ์๋ค ๋ํดํธ๊ฐ์ด๊ธฐ๋ ํ๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฅ ์ด๋ฐ๊ฒ ์๋ค๊ณ ๋ง ์์๋์
์ง๊ณํจ์์๋ count ์ด์ธ์๋ SUM, AVG, MIN, MAXํจ์๊ฐ ์กด์ฌํ๋ค
MIN, MAX๋ ์ด๋ฆ ๊ทธ๋๋ก ์ต์๊ฐ, ์ต๋๊ฐ์ ๋์ถํด์ฃผ๋ ํจ์์ด๋ค ๊ทธ๋์ ํ์ธํด๋ด์ผํ๋ ๋ถ๋ถ์ ๋ฌธ์์ด์ด๋ ๋ ์จ์๊ฐํ์์๋ ์ฌ์ฉํ ์ ์๋ค๋ ์ ! ๊ทธ๋ฆฌ๊ณ null๊ฐ์ ์ฌ์ ํ ๋ฌด์ํ๋ค๋ ์ !
SUM์ด๋ผ๋ ์ง๊ณํจ์๋ ์งํฉ์ ํฉ๊ณ๋ฅผ ๊ตฌํด์ฃผ๋ ํจ์์ด๋ค ์ด๋ ๊ฒ sample51์ด๋ผ๋ ํ ์ด๋ธ์์์ quantity๋ผ๋ ํ์ ์ซ์๋ฅผ ๋ํ ๊ฐ์ด ๋์จ๋ค๋ ๊ฒ์ ํ์ธ ๊ฐ๋ฅ SUM ํจ์์ ์ฌ์ฉํ ์ ์๋ ๊ฐ์ ์ค์ง ์์นํ ๋ฟ์ด๋ค. ๋ฌธ์์ด์ด๋ ๋ ์งํ์ผ๋ก๋ ํฉ๊ณ๋ฅผ ๊ตฌํ ์ ์๋ค ์ฌ์ง์ ๋ณด๋ฉด ์๊ฒ ์ง๋ง countํจ์์ ๊ฐ์ด null๊ฐ์ ๋ฌด์ํ๊ณ ์ ๊ฑฐํ ๋ค์ ํฉ๊ณ๋ฅผ ๋ด๊ณ ์๋ ๊ฒ์ ๋ณผ ์ ์๋ค
์์์ sum์ผ๋ก ํฉ์ ๋ธ ๊ฒ์ ๊ฐ์ง๊ณ ํ๊ท ์ ๊ตฌํ ์ ์๋ค ๋ฌผ๋ก ๋จ์ํ๊ฒ sum(quantity)/count(quantity) ์ด๋ ๊ฒ ์์์ผ๋ก ํํํด์ ํ๊ท ์ ๋ณผ ์๋ ์์ง๋ง AVG๋ผ๋ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ ต์ง ์๊ฒ ํ๊ท ์ ๊ตฌํ ์ ์์ avg๋ผ๋ ์ง๊ณํจ์๋ null์ ๋ฌด์ํ๊ณ ์งํํ๋ค. ๋ง์ฝ์ null์ 0์ผ๋ก ๊ฐ์ฃผํด์ ์งํํ๊ณ ์ถ๋ค๋ฉด CASE๋ฌธ์ผ๋ก null์ 0์ผ๋ก ํ๋ฒ ๋ณํํ๊ณ ์ฌ์ฉํด์ผํจ