๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜์—ญ์—์„œ ์ง‘๊ณ„ ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์š”์•ฝํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ํ†ต์ฐฐ๋ ฅ์„ ์–ป๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠน์ˆ˜ ํด๋ž˜์Šค์˜ ํ•จ์ˆ˜๋Š” ๋‹จ์ผ ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ํ…Œ์ด๋ธ” โ€‹โ€‹๋˜๋Š” ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์—์„œ ๋ฐ์ดํ„ฐ์˜ ์—ฌ๋Ÿฌ ํ–‰์„ ์ฒ˜๋ฆฌํ•˜์—ฌ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์œ ์ตํ•œ ๋ณด๊ณ ์„œ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ํŠนํžˆ 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 ์ ˆ๊ณผ ๊ฒฐํ•ฉํ•˜๋ฉด ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ๋ณด๋‹ค ํšจ๊ณผ์ ์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ธฐ์—…์ด ์ •๋ณด์— ์ž…๊ฐํ•œ ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๊ณ  ์šด์˜์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.