๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ญ์์ ์ง๊ณ ํจ์๋ ๋ฐ์ดํฐ๋ฅผ ์์ฝํ๊ณ ํจ์จ์ ์ผ๋ก ํต์ฐฐ๋ ฅ์ ์ป๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. ์ด๋ฌํ ํน์ ํด๋์ค์ ํจ์๋ ๋จ์ผ ๊ฐ์ ๊ณ์ฐํ๊ธฐ ์ํด ํ ์ด๋ธ โโ๋๋ ๊ฒฐ๊ณผ ์งํฉ์์ ๋ฐ์ดํฐ์ ์ฌ๋ฌ ํ์ ์ฒ๋ฆฌํ์ฌ ์๋ํฉ๋๋ค. ๊ณ์ฐ์ ์ํํ๊ณ ์ ์ตํ ๋ณด๊ณ ์๋ฅผ ์์ฑํ๊ธฐ ์ํด ํนํ SQL(Structured Query Language) ์ปจํ ์คํธ์์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ข ์ข ์ ์ฉ๋ฉ๋๋ค.
SQL์์ ์ง๊ณ ํจ์์ ๋ช ๊ฐ์ง ์ผ๋ฐ์ ์ธ ์๋ก๋ COUNT, SUM, AVG, MIN ๋ฐ MAX๊ฐ ์์ต๋๋ค. COUNT๋ ์ง์ ๋ ์ด์์ NULL์ด ์๋ ํ์ ์๋ฅผ ์ธก์ ํ๋ ๋ฐ๋ฉด SUM์ ํน์ ์ด์ ๊ฐ์ ๋ํฉ๋๋ค. ๋ฐ๋ฉด AVG๋ ์ด์ ํ๊ท ๊ฐ์ ๊ณ์ฐํ๋ ๋ฐ๋ฉด MIN ๋ฐ MAX๋ ๊ฐ๊ฐ ์ด์์ ๊ฐ์ฅ ์์ ๊ฐ๊ณผ ๊ฐ์ฅ ํฐ ๊ฐ์ ๊ฒ์ํฉ๋๋ค.
์ง๊ณ ํจ์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ด๋ป๊ฒ ํ์ฉ๋ ์ ์๋์ง ์ค๋ช ํ๋ ค๋ฉด AppMaster no-code ํ๋ซํผ์ ๊ณ ๋ คํ์ญ์์ค. AppMaster ๋ฅผ ํตํด ๊ณ ๊ฐ์ ์๊ฐ์ BP Designer, REST API ๋ฐ WSS ์๋ํฌ์ธํธ๋ฅผ ํตํด ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ํตํด ๋ฐ์ดํฐ ๋ชจ๋ธ(๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง), ๋น์ฆ๋์ค ๋ก์ง์ ์๊ฐ์ ์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ AppMaster ์์ ์์ฑํ ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ํธ ์์ฉํ๋ฉด ๋ฐ์ดํฐ๊ฐ ์์ง๋์ด Postgresql ํธํ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ฉ๋๋ค. ์ด ๋ฐ์ดํฐ๋ ํ๊ท ์ฌ์ฉ ์๊ฐ, ์ด ์ฌ์ฉ์ ์ ๋๋ ๊ฐ์ฅ ๋์ ์์ต์ ์ฐฝ์ถํ๋ ๊ณ ๊ฐ๊ณผ ๊ฐ์ ์ฃผ์ ํต๊ณ๋ฅผ ์ป๊ธฐ ์ํด ์ง๊ณ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌํ ์ ์์ต๋๋ค. ๋ํ ์ด๋ฌํ ๊ธฐ๋ฅ์ ๊ฒฐ๊ณผ๋ ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ์ถ์ธ ์์ฑ ๋๋ ํจํด ์๋ณ๊ณผ ๊ฐ์ ์ถ๊ฐ ๋ถ์์ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
๋ง์ ์์ ๋ฐ์ดํฐ๋ก ์์ ํ ๋ ์ง๊ณ ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค. ์ฑ๋ฅ ์ต์ ํ๋ ์ง๊ณ ์์ ์ ์ค์ํ ์ธก๋ฉด์ ๋๋ค. ๋ณ๋ ฌ ์ฒ๋ฆฌ, ํํฐ์ ๋ ๋ฐ ์ธ๋ฑ์ฑ๊ณผ ๊ฐ์ ๊ธฐ์ ์ ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฟผ๋ฆฌํ๊ณ ์ฒ๋ฆฌํ๋ ํจ์จ์ฑ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
์ฃผ๋ชฉํด์ผ ํ ์ค์ํ ์ ์ ์ง๊ณ ํจ์๊ฐ ๊ณ์ฐ์ ์ํํ ๋ NULL ๊ฐ์ ๊ณ ๋ คํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๋ถ์์ ํ๊ฑฐ๋ ์๋ชป๋ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ์ ์์ต๋๋ค. ์ ์ ํ ์ ๋ ฅ ์ ํจ์ฑ ๊ฒ์ฌ, ๋ฐ์ดํฐ ์ ๋ฆฌ ๊ธฐ์ ๋๋ NULL ๊ฐ์ ํฌํจํ๋ COUNT(*)์ ๊ฐ์ ํน์ ํจ์ ์ฌ์ฉ์ ํตํด NULL ๊ฐ์ ์ฃผ์ ๊น๊ฒ ์ฒ๋ฆฌํ๋ฉด ์ด ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
๋ํ ์ง๊ณ ํจ์๋ GROUP BY ๋ฐ HAVING๊ณผ ๊ฐ์ ๋ค๋ฅธ SQL ์ ๊ณผ ๊ฒฐํฉํ์ฌ ๋ณด๋ค ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ํ์ฑํ ์ ์์ต๋๋ค. GROUP BY ์ ์ ์ง์ ๋ ์ด์์ ์ ์ฌํ ๊ฐ์ ๊ฐ์ง ํ์ ๊ทธ๋ฃนํํ ๋ค์ ์ง๊ณํ์ฌ ์๋ณ๋ ๊ทธ๋ฃน๋น ํ๋์ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ฌ๋ฌ ๋ฒ์ฃผ ๋ด์์ ํน์ ์ ๋ณด๋ฅผ ์ฐพ์์ผ ํ ๋ ์ ์ฉํฉ๋๋ค. ๋ฐ๋ฉด์ HAVING ์ ์ ์ง๊ณ๋ ๋ฐ์ดํฐ์ ๋ํ ํํฐ ์ญํ ์ ํ์ฌ ์ง์ ๋ ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ๊ฒฐ๊ณผ๋ง ์ต์ข ์ถ๋ ฅ์ ํฌํจ๋๋๋ก ํฉ๋๋ค.
์๋ฅผ ๋ค์ด ์ง๊ณ ํจ์์ ํจ๊ป GROUP BY๋ฅผ ์ฌ์ฉํ๋ฉด AppMaster ํ๋ซํผ์ ํด๋ผ์ด์ธํธ๊ฐ ๋ ์ง์ ๊ฐ์ ํน์ ์์ฑ๋ณ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํ ๋ค์ ๊ฐ ๊ทธ๋ฃน์ ๋ํด ์ง๊ณ๋ ์งํ๋ฅผ ๊ณ์ฐํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ์ถ์ธ๋ ํจํด์ ์๋ณํ ์ ์์ต๋๋ค. ๋ํ HAVING ์ ์ ์ฌ์ฉํ์ฌ ํ๋ฃจ์ ์์ฑ๋๋ ํ๊ท ์์ต๊ณผ ๊ฐ์ ํน์ ์๊ณ๊ฐ์ ์ด๊ณผํ๋ ๊ทธ๋ฃน์๋ง ์ง์คํ์ฌ ๋ ๋ง์ ๋์ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก ์ง๊ณ ํจ์๋ ํนํ SQL ์ปจํ ์คํธ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์์ ํ ๋ ์์ด์๋ ์ ๋ ๋๊ตฌ์ ๋๋ค. ๋ฐ์ดํฐ ์์ฝ์ ๊ฐ๋ฅํ๊ฒ ํ๊ณ ๋ณต์กํ ๊ณ์ฐ์ ๋จ์ํํ๋ฉฐ ๋๋์ ๋ฐ์ดํฐ์ ๋ํ ํ์ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํฉ๋๋ค. ๊ณ ๊ฐ์ด ์น, ๋ฐฑ์๋ ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๊ณ ๊ด๋ฆฌํ ์ ์๋ AppMaster ๋ ธ์ฝ๋ ํ๋ซํผ์ ๊ด๋ จ ๋น์ฆ๋์ค ์ธํ ๋ฆฌ์ ์ค๋ฅผ ์ ์ํ๊ณ ์ ํํ๊ฒ ์ถ์ถํ ์ ์์ผ๋ฏ๋ก Aggregate Functions์ ์ด์ ์ ๊ด๋ฒ์ํ๊ฒ ํ์ฉํฉ๋๋ค. GROUP BY ๋ฐ HAVING๊ณผ ๊ฐ์ ๋ค๋ฅธ SQL ์ ๊ณผ ๊ฒฐํฉํ๋ฉด ์ด๋ฌํ ๊ธฐ๋ฅ์ ํตํด ๋ฐ์ดํฐ ๋ถ์์ ๋ณด๋ค ํจ๊ณผ์ ์ผ๋ก ์ ์ดํ ์ ์์ผ๋ฏ๋ก ๊ธฐ์ ์ด ์ ๋ณด์ ์ ๊ฐํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ณ ์ด์์ ์ต์ ํํ ์ ์์ต๋๋ค.