Day 19

GROUP BY๊ตฌ๋Š” ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ์ง‘ํ•ฉ์„ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค

GROUP BY๋กœ ๊ทธ๋ฃนํ™”

group by๋Š” ํŠน์ •ํ•œ ์—ด์„ ์žก์•„์„œ ๊ทธ๋ฃนํ™” ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค name์ด๋ผ๋Š” ํ–‰์„ ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ฃนํ™”๋ฅผ ํ•ด๋ณด์ž img_1.png ์ด๋ ‡๊ฒŒ ๋ด๋ณด๋ฉด ์ผ๋‹จ ๊ทธ๋ฃนํ™”ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๊ทธ๋ฃนํ™”ํ•˜๊ณ  ์‹ถ์€ ํ–‰๋งŒ select๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ ์„ ๋ณผ ์ˆ˜ ์žˆ๊ณ  ๊ทธ๋ฆฌ๊ณ  group by๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด distinct๋ฅผ ๊ฑธ์—ˆ์„ ๋•Œ์ฒ˜๋Ÿผ ์ค‘๋ณต๋œ ํ–‰์€ ํ•˜๋‚˜์˜ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์—ฌ์„œ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค ์ฑ…์—์„œ๋Š” group by๋Š” ์ง‘๊ณ„ํ•จ์ˆ˜์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ๋ณ„๋กœ ์˜๋ฏธ์—†๋‹ค๊ณ  ํ•œ๋‹ค..! ๊ทธ๋ž˜๋„ ์•Œ์•„๋Š” ๋‘ฌ์•ผ์ง€ ๊ทธ๋Ÿผ ์ง‘๊ณ„ํ•จ์ˆ˜์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ์“ฐ๋Š”์ง€ ๋ณด์ž img.png ์ผ๋‹จ name์„ ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ฃนํ•‘์„ ํ–ˆ๊ณ , ๊ฐ nameํ–‰์˜ ๊ฐฏ์ˆ˜, ๊ฐ ์ด๋ฆ„์ด ๊ฐ€์ง„ ๊ฐ’๋“ค์˜ ํ•ฉ์„ ์ฟผ๋ฆฌํ–ˆ๋‹ค nameํ–‰์€ ์œ„์—์„œํ•œ ๊ฒƒ๊ณผ ๊ฐ™๊ฒŒ name์„ distinctํ•˜๊ฒŒ ๊ฐ€์ ธ์˜จ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๊ณ  nameํ–‰์˜ ๊ฐฏ์ˆ˜๋ฅผ ์„ธ๋Š”๋ฐ, ์ผ๋‹จ countํ•จ์ˆ˜๋Š” null์„ ์„ธ์ง€ ์•Š๊ธฐ ๋–„๋ฌธ์— 0์ด ๋‚˜์˜จ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๊ณ , A๋ผ๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง„ ํ–‰์ด 2๊ฐœ์ด๊ธฐ ๋•Œ๋ฌธ์— 2๊ฐ€ ๋‚˜์˜จ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Œ

HAVING ๊ตฌ๋กœ ์กฐ๊ฑด ์ง€์ •

์ง‘๊ณ„ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ WHERE์ ˆ์˜ ์กฐ๊ฑด์‹์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ ์ด ์žˆ๋Š”๋ฐ ์ด ์ด์œ ๋Š” WHERE์ ˆ์ด ๋จผ์ € ์‹คํ–‰๋˜๊ณ  ๋‚˜์„œ ๊ทธ ๋‹ค์Œ์œผ๋กœ GROUP BY์ ˆ์ด ์‹คํ–‰๋˜๋Š” ์‹คํ–‰ ์ˆœ์„œ์— ๋Œ€ํ•œ ์ฐจ์ด๊ฐ€ ์กด์žฌํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค ๋‚ด๋ถ€ ์ฒ˜๋ฆฌ ์ˆœ์„œ๋Š” ์ด๋Ÿฌํ•˜๋‹ค : WHERE -> GROUP BY -> SELECT -> ORDER BY ๊ทธ๋ž˜์„œ ์ง‘๊ณ„ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์กฐ๊ฑด์— ๋งž๋Š” ๊ฐ’์„ ๋”ฐ๋กœ ๊ฑธ๋Ÿฌ๋‚ด๋Š” ๋ฐฉ๋ฒ•์ด ๋ฐ”๋กœ SELECT์— ์žˆ๋Š” HAVING์ ˆ์ด๋‹ค ์ด๊ฑธ ์‚ฌ์šฉํ•ด๋ฉด ์ง‘๊ณ„ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์–ป์€ ๊ฐ’์„ ์กฐ๊ฑด์‹์œผ๋กœ ๊ฑฐ๋ฅผ ์ˆ˜ ์žˆ๋‹ค ใ… ใ„ฑ

HAVING์ ˆ์€ group by๋’ค์— ์ž‘์„ฑํ•˜๊ณ , where์ ˆ๊ณผ ๋™์ผํ•˜๊ฒŒ ์กฐ๊ฑด์‹์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค ์กฐ๊ฑด์‹์—๋Š” ๊ทธ๋ฃน๋ณ„๋กœ ์ง‘๊ณ„๋œ ์—ด์˜ ๊ฐ’์ด๋‚˜ ์ง‘๊ณ„ํ•จ์ˆ˜์˜ ๊ณ„์‚ฐ๊ฒฐ๊ณผ๊ฐ€ ์ „๋‹ฌ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํŽธํ•˜๋‹ค ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ณด๋ฉด WHERE์ ˆ์œผ๋กœ ๊ฒ€์ƒ‰์„ ๋จผ์ € ํ•˜๊ณ  -> ๊ทธ๊ฒƒ์„ ๊ทธ๋ฃนํ™”ํ•˜๊ณ  -> HAVING์œผ๋กœ ์กฐ๊ฑด์— ๋งž๋Š” ๊ฒƒ์„ ์ฐพ๋Š” ๋ฐฉ์‹์ด๋‹ค img_2.png ์ด๋ ‡๊ฒŒ ๊ทธ๋ฃนํ™”๋ฅผ ๋งˆ์นœ ๊ฐ’๋“ค์„ ๊ธฐ์ค€์œผ๋กœ ์กฐ๊ฑด์„ ํ•œ๋ฒˆ ๋” ๊ฑธ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค HAVING์„ ๋ดค์œผ๋‹ˆ๊นŒ ๋‚ด๋ถ€ ์ฒ˜๋ฆฌ ์ˆœ์„œ์— ๋ณ€๋™์ด ์ƒ๊ธด๋‹ค ๋‚ด๋ถ€ ์ฒ˜๋ฆฌ ์ˆœ์„œ : WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY ๊ทธ๋ฃนํ™”๋ณด๋‹ค ๋” ๋Šฆ๊ฒŒ ์ฒ˜๋ฆฌ๋˜๋Š” ORDER BY๊ตฌ์—์„œ๋Š” ์ง‘๊ณ„ํ•จ์ˆ˜๋ฅผ ๋ฌธ์ œ ์—†์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค ํ•˜์ง€๋งŒ ์ฐธ๊ณ ๋กœ AS๋กœ ๋ณ„๋ช…์„ ๋ถ™ํžŒ ๊ฒƒ์„ order by์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ ์„ ๊ธฐ์–ตํ•˜์ž ๋ณ„๋ช…์€ select๊นŒ์ง€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด๊ธฐ ๋•Œ๋ฌธ์— ํ‘œ์ค€์„ ๊ธฐ์ค€์œผ๋กœ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ ์„ ๊ธฐ์–ตํ•˜์ž->MySQL์—์„œ๋Š” ๊ฐ€๋Šฅ

๋ณต์ˆ˜์—ด์˜ ๊ทธ๋ฃนํ™”

์œ„์—์„œ group by๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ทธ๋ฃนํ•‘ํ•  ๊ฐ’๋งŒ์„ selectํ–ˆ์—ˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์—๋Š” ์ด์œ ๊ฐ€ ์žˆ๋‹ค ์ผ๋‹จ group by๋กœ ์–ด๋– ํ•œ ํ–‰์„ ์žก์•˜์„ ๊ฒฝ์šฐ์—๋Š” ๊ทธ๋ฃนํ•‘์„ ์ง€์ •ํ•œ ๊ฐ’ ํ•˜๋‚˜๋งŒ์„ ๊ฐ€์ง€๊ณ  selectํ•  ์ˆ˜ ์žˆ๋‹ค ๋งŒ์•ฝ์— select name, quantity from sample51 group by name ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋œฌ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค ์ด์œ ๋Š” group by๋กœ ๊ทธ๋ฃนํ™”๋ฅผ ํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ๋กœ ๋ฐ˜ํ™˜๋˜๋Š” ๊ฒฐ๊ณผ๋Š” ๊ทธ๋ฃน๋‹น ํ•˜๋‚˜์˜ ํ–‰์ด๋‹ค group by๋ฅผ name์œผ๋กœ ์ •๋ ฌํ–ˆ๋Š”๋ฐ, select์—์„œ name, quantity๋ฅผ ์žก๊ณ  ์žˆ์œผ๋ฉด group by์ฒ˜๋ฆฌ ํ›„ ์–ด๋–ค ๊ฒƒ์„ ๋ฐ˜ํ™˜ํ•ด์•ผํ•˜๋Š”์ง€ ์• ๋งคํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—๋Ÿฌ๋ฅผ ๋ฑ‰๋Š” ๊ฒƒ์ด๋‹ค ํ•ด๊ฒฐ๋ฐฉ๋ฒ•? ์œผ๋กœ๋Š” ๋‹ค๋ฅธ ํ–‰์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ˆซ์ž์˜ ๊ฐœ๋…์ธ ์ง‘๊ณ„ํ•จ์ˆ˜๋ฅผ ๋Œ๋ฆฐ ๊ฐ’์„ ์ง‘์–ด๋„ฃ์œผ๋ฉด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค ์˜ˆ์‹œ๋กœ ๋ณด๋ฉด select name, sum(quantity) from sample51 group by name ์ด๋ ‡๊ฒŒ๋Š” ์ž˜ ์ž‘๋™ ๋˜๋Š” ๋‹ค์ˆ˜์˜ ํ–‰์„ selectํ•ด์•ผ ํ•œ๋‹ค๋ฉด group by์—์„œ๋„ ๊ทธ ๋‹ค์ˆ˜์˜ ํ–‰์„ ์ฒ˜๋ฆฌํ•ด์ฃผ๋ฉด ์ž˜ ์ž‘๋™ํ•œ๋‹ค => GROUP BY์—์„œ ์ง€์ •ํ•œ ์—ด ์ด์™ธ์˜ ์—ด์€ ์ง‘๊ณ„ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ์ฑ„ select ๊ตฌ์— ์ง€์ •ํ•  ์ˆ˜ ์—†๋‹ค

๊ฒฐ๊ณผ๊ฐ’ ์ •๋ ฌ

GROUP BY๋กœ ๊ฐ’์„ ๊ทธ๋ฃนํ™”ํ•ด๋„ ์‹คํ–‰๊ฒฐ๊ณผ ์ˆœ์„œ๋ฅผ ์ •๋ ฌํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด๋ถ€ ์ฒ˜๋ฆฌ์—์„œ ๊ฐ™์€ ๊ฐ’์„ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ณผ์ •์—์„œ ์ˆœ์„œ๊ฐ€ ์„œ๋กœ ๋ฐ”๋€Œ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ์Œ group by๋กœ ๊ฐ’์„ ์ •๋ ฌํ–ˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ๊ทธ๋ฃนํ•‘ํ•œ ๊ฐ’์ด ์•„๋‹ˆ๋”๋ผ๋„ order by๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ •๋ ฌํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•„์š”ํ•œ ์ •๋ ฌ์„ ์‚ฌ์šฉํ•ด์„œ ๊ฒฐ๊ณผ๋ฌธ์„ ์ •๋ ฌํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค

Last updated

Was this helpful?