day04
- DEPARTMENT_ID์ ์ค๋ณต ์ ๊ฑฐ
SELECT DISTINCT DEPARTMENT_ID FROM EMPLOYEES e ;
- ์ฌ์ฉ ๋ถ๊ฐ
SELECT DISTINCT DEPARTMENT_ID , SUM(SALARY) FROM EMPLOYEES e ;
SELECT DEPARTMENT_ID
FROM EMPLOYEES e
GROUP BY DEPARTMENT_ID
ORDER BY DEPARTMENT_ID
;
๋ถ์๋ณ ๊ธ์ฌํฉ๊ณ
SELECT DEPARTMENT_ID , SUM(SALARY) FROM EMPLOYEES e GROUP BY DEPARTMENT_ID ORDER BY DEPARTMENT_ID ;
๋ถ์๋ณ, ์ง๊ธ๋ณ(job_id) ์ฌ์์์ ํ๊ท ๊ธ์ฌ๋ฅผ ๊ตฌํ๊ธฐ 20 ๋ถ์ 2๊ฐ๋ก ์ชผ๊ฐ์ง๊ณ 30 2๊ฐ๋ก ์ชผ๊ฐ์ง ์ํฉ
SELECT DEPARTMENT_ID , JOB_ID , SUM(SALARY) , COUNT(SALARY) , AVG(SALARY) FROM EMPLOYEES e WHERE DEPARTMENT_ID = 80 GROUP BY DEPARTMENT_ID , JOB_ID ORDER BY DEPARTMENT_ID , JOB_ID ;
๐ Keypoint
PU_CLERK ์ PU_MAN๋ ๋๋ค 30๋ฒ ๋ถ์
SUM(์๋ฌ๋ฆฌ)ํตํด ํฉ๊ณ ๋ณผ์์๊ณ
COUNT(์๋ฌ๋ฆฌ) ์ธ์์ ๋ณผ์ ์์SUM(SALARY) = ์ด ๋ถ์์ ๊ธ์ฌ ์ดํฉ
COUNT(SALARY) = ์ด ๋ถ์์ ์ธ์ ์
AVG(SALARY) = SUM(SALARY) / COUNT(SALARY) ๋ผ๊ณ ๋ณผ ์ ์๋ค.
-> where์ ์์๋ ์ง๊ณํจ์๋ฅผ ์ฌ์ฉ ํ ์ ์๋ค.
-> having์ ์ ์ง๊ณํจ์๋ฅผ ๊ฐ์ง๊ณ ์กฐ๊ฑด๋น๊ต๋ฅผ
ํ ๋ ์ฌ์ฉํ๋ค.
-> having์ ์ groupby์ ๊ณผ ํจ๊ป ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
์ฌ์์๊ฐ 10๋ช ์ด์์ธ ๋ถ์๋ฅผ ์กฐํ
๋จ, ๋ถ์๊ฐ NULL์ธ์ฌ๋์ ์ ์ธSELECT DEPARTMENT_ID, COUNT(*) FROM EMPLOYEES e WHERE DEPARTMENT_ID IS NOT NULL GROUP BY DEPARTMENT_ID HAVING COUNT(*) >= 10 ;
๐ Keypoint
DEPARTMENT_ID : ๋ถ์ ์์ด๋
COUNT() : ๋ถ์์ ์ธ์
HAVING COUNT() = 10๋ช ์ด์๋ง ์กฐํ
๋ถ์ ์กฐํ ํด์ผํ๋ DEPARTMENT_ID ์กฐํ์ธ์ ์์์ผ ํ๋ COUNT() ์ฌ๋ฆฐ๋ค.
๋จ, NULL ์ ์ธํ๋๊น
์กฐ๊ฑด๋ฌธ DEPARTMENT_ID IS NOT NULL ๋ฌ์์ค๋ค.
NULL ์ธ์ ์ฌ๋ผ์ก์ผ๋ ์ด์ 10๋ช ์ด์์ ๋ถ์๋ฅผ ์ฐพ๋๋ค.
HAVING COUNT() >=10์ ํตํด 10๋ช ์ด์์ ์ฐพ๋๋ค.