GROUP BY
โGROUP BYโ ์ ์ SQL์์ ํน์ ์ด(๋ค)์ ๊ฐ์ ๊ธฐ๋ฐํ์ฌ ํ(row)๋ค์ ๊ทธ๋ฃนํํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
- ์ด ๊ธฐ๋ฅ์ ์ง๊ณํจ์(โSUMโ, โAVGโ, โCOUNTโ, โMINโ, โMAXโ ๋ฑ)์ ํจ๊ผ ์ฌ์ฉ๋์ด, ๊ฐ ๊ทธ๋ฃน์ ๋ํ ์ง๊ณ๋ ๋ฐ์ดํฐ๋ฅผ ๊ณ์ฐํ๊ณ ๋ฐํํ๋ ๋ฐ ์ฃผ๋ก ํ์ฉ๋ฉ๋๋ค.
- โGROUP BYโ ๋ ๋ฐ์ดํฐ๋ฅผ ์์ฝํ๊ณ , ํน์ ๊ธฐ์ค์ ๋ฐ๋ฅธ ๋ฐ์ดํฐ์ ํต๊ณ๋ฅผ ๋ถ์ํ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค.
โGROUP BYโ ์ฌ์ฉ ์
-
๊ทธ๋ฃน๋ณ ํฉ๊ณ ๊ณ์ฐ: ๊ฐ ๋ถ์๋ณ ์ด ๊ธ์ฌ๋ฅผ ๊ณ์ฐํ๊ณ ์ถ์ ๋
SELECT department, SUM(salary) FROM employees GROUP BY departmentl
์ด ์ฟผ๋ฆฌ๋ โemployeesโ ํ ์ด๋ธ์์ โdepartmentโ ๋ณ๋ก ๊ทธ๋ฃนํํ๊ณ , ๊ฐ ๊ทธ๋ฃน์ โsalaryโ ํฉ๊ณ๋ฅผ ๊ณ์ฐํฉ๋๋ค.
-
๊ทธ๋ฃน๋ณ ํ๊ท ๊ณ์ฐ: ๊ฐ ์ ํ ์นดํ
๊ณ ๋ฆฌ๋ณ ํ๊ท ๊ฐ๊ฒฉ์ ๊ณ์ฐํ๊ณ ์ถ์ ๋
SELECT category, AVG(price) FROM products GROUP BY category;
์ด ์ฟผ๋ฆฌ๋ โproductโ ํ ์ด๋ธ์์ โcategoryโ ๋ณ๋ก ๊ทธ๋ฃนํํ๊ณ , ๊ฐ ๊ทธ๋ฃน์ price ํ๊ท ์ ๊ณ์ฐํฉ๋๋ค.
-
๊ทธ๋ฃน๋ณ ๋ฐ์ดํฐ ์ ๊ณ์ฐ: ๊ฐ ๋ถ์์ ์ํ ์ง์ ์๋ฅผ ์ธ๊ณ ์ถ์ ๋
SELECT department, COUNT(*) FROM employees GROUP BY department;
์ด ์ฟผ๋ฆฌ๋ โemployeesโ ํ ์ด๋ธ์์ โdepartmentโ ๋ณ๋ก ๊ทธ๋ฃนํํ๊ณ , ๊ฐ ๊ทธ๋ฃน์ ์ง์ ์๋ฅผ ์ธ์ด ๋ฐํํฉ๋๋ค.
โGROUP BYโ ์ ์ ํน์ง
- ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํ๊ณ ๊ฐ ๊ทธ๋ฃน์ ๋ํ ์ง๊ณ๋ฅผ ์ํํ์ฌ, ๋ฐ์ดํฐ์ ์์ฝ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ฌ๋ฌ ์ด์ ๊ธฐ์ค์ผ๋ก ๊ทธ๋ฃนํํ ์ ์์ผ๋ฉฐ, ์ด ๊ฒฝ์ฐ ์ ํ๋ ๋ชจ๋ ์ด์ ์กฐํฉ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๊ฐ ๊ทธ๋ฃนํ๋ฉ๋๋ค.
- ์ง๊ณ ํจ์์ ํจ๊ป ์ฌ์ฉ๋์ด, ๊ฐ ๊ทธ๋ฃน๋ณ๋ก ํจ๊ณ, ํ๊ท , ์ต์๊ฐ, ์ต๋๊ฐ ๋ฑ์ ๊ณ์ฐํ ์ ์์ต๋๋ค.
- โHAVINGโ ์ ๊ณผ ํจ๊ป ์ฌ์ฉํ์ฌ, ์ง๊ณ ๊ฒฐ๊ณผ์ ๋ํ ์กฐ๊ฑด์ ์ค์ ํ ์ ์์ต๋๋ค. ์ด๋ โWHEREโ ์ ๊ณผ ์ ์ฌํ์ง๋ง, โGROUP BYโ ๋ก ๊ทธ๋ฃนํ๋ ๊ฒฐ๊ณผ์ ๋ํด ์กฐ๊ฑด์ ์ ์ฉํ๋ ์ ์ด ๋ค๋ฆ ๋๋ค.
์ฌ์ฉ ์ ๊ณ ๋ ค์ฌํญ
- โGROUP BYโ ๋ฅผ ์ฌ์ฉํ ๋๋ ์ ํ๋ ์ด์ด โSELECTโ ์ ์ ํฌํจ๋์ด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ, SQL ์ฟผ๋ฆฌ๊ฐ ์์๋๋ก ์๋ํ์ง ์์ ์ ์์ต๋๋ค.
- ๋๊ท๋ชจ ๋ฐ์ดํฐ์ ์์ โGROUP BYโ ๋ฅผ ์ฌ์ฉํ ๋๋ ์ฟผ๋ฆฌ์ ์ฑ๋ฅ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์ ์ ํ ์ธ๋ฑ์ค ์ฌ์ฉ๊ณผ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์ต์ ํ๊ฐ ์ฑ๋ฅ์ ํฐ ์ํซ์ ๋ฏธ์น ์ ์์ต๋๋ค.
โGROUP BYโ ์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ๊ณ ์์ฝ ์ ๋ณด๋ฅผ ์ป๊ธฐ ์ํ ๊ฐ๋ ฅํ ๋๊ตฌ๋ก, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์์ ์๋ฏธ ์๋ ์ธ์ฌ์ดํธ๋ฅผ ๋์ถํ๋ ๋ฐ ํฌ๊ฒ ๊ธฐ์ฌํฉ๋๋ค.