๊ทธ๋ฃนํจ์(์ง๊ณํจ์)๋ ํน์ ํ ํ๋ค์ ์งํฉ์ผ๋ก ๊ทธ๋ฃน์ด ํ์ฑ๋์ด ์ ์ฉ ๊ทธ๋ฃน๋น 1๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ํจ์๋ก, ๊ฒฐ๊ณผ๊ฐ ๋ฑ 1ํ๋ง ๋์ค๊ฒ ๋๋ค.
SELECT SUM(SALARY) FROM EMPLOYEE; -- ์ ์ฒด ํฉ
SELECT AVG(SALARY) FROM EMPLOYEE; -- ์ ์ฒด ํ๊ท
SELECT COUNT(SALARY) FROM EMPLOYEE; -- ์ ์ฒด ๋ ์ฝ๋ ๊ฐฏ์
SELECT MAX(SALARY), MIN(SALARY) FROM EMPLOYEE; -- ์ต๋, ์ต์
SELECT DEPT_CODE, SUM(SALARY) FROM EMPLOYEE GROUP BY DEPT_CODE ORDER BY 1 ASC;
GROUP BY
์ ์, ๋ณ๋์ ๊ทธ๋ฃน์ง์ ์์ด ์ฌ์ฉํ ๊ทธ๋ฃนํจ์๋ ๋จ ํ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ๋ง ์ฐ์ถํ๊ธฐ ๋๋ฌธ์,
๊ทธ๋ฃนํจ์๋ฅผ ์ด์ฉํ์ฌ ์ฌ๋ฌ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ
์ ์ฐ์ถํ๊ธฐ ์ํด์ ๊ทธ๋ฃนํจ์๊ฐ ์ ์ฉ๋ ๊ทธ๋ฃน์ ๊ธฐ์ค
์ GROUP BY์ ์ ๊ธฐ์ ํ์ฌ ์ฌ์ฉํ๋ค.
-- ๋ถ์๋ณ ์ธ์์๋ฅผ ๊ตฌํด๋ณด์์ค.
SELECT DEPT_CODE, COUNT(*) FROM EMPLOYEE GROUP BY DEPT_CODE HAVING COUNT(*) <= 5 ORDER BY 1 DESC;
HAVING
์ ์, ๊ทธ๋ฃนํจ์๋ก ๊ฐ์ ๊ตฌํด์ฌ ๊ทธ๋ฃน์ ๋ํด ์กฐ๊ฑด์ ์ค์
ํ ๋ ์ฌ์ฉํ๋ค.
WHERE์ ๊ณผ ๋น์ทํ์ง๋ง, WHERE์ ์ SELECT์ ๋ํ ์กฐ๊ฑด์ ๋ํ๋ด๋ฏ๋ก, ๊ตฌ๋ณํด์ ์ฌ์ฉํ ์ค ์์์ผ ํ๋ค.
-- ๋ถ์๋ด ์ง๊ธ๋ณ ๊ธ์ฌ์ ํฉ๊ณ๋ฅผ ๊ตฌํ์์ค
SELECT DEPT_CODE, JOB_CODE, SUM(SALARY) FROM EMPLOYEE GROUP BY ROLLUP(DEPT_CODE, JOB_CODE) ORDER BY 1;
ROLLUP
์, ์ธ์๋ก ์ ๋ฌ๋ฐ์ ๊ทธ๋ฃน ์ค์ ๊ฐ์ฅ ๋จผ์ ์ง์ ํ ๊ทธ๋ฃน๋ณ ํฉ๊ณ์ ์ด ํฉ๊ณ
๋ฅผ ๊ตฌํ๋ค.
-- ๋ถ์๋ด ์ง๊ธ๋ณ ๊ธ์ฌ์ ํฉ๊ณ๋ฅผ ๊ตฌํ์์ค
SELECT DEPT_CODE, JOB_CODE, SUM(SALARY) FROM EMPLOYEE GROUP BY CUBE(DEPT_CODE, JOB_CODE) ORDER BY 1;
CUBE
๋ ๊ทธ๋ฃน์ผ๋ก ์ง์ ๋ ๋ชจ๋ ๊ทธ๋ฃน์ ๋ํ ํฉ๊ณ์ ์ด ํฉ๊ณ
๋ฅผ ๊ตฌํ๋ค.