IT/DataBase

[Oracle]GROUP BY + ๊ทธ๋ฃนํ•จ์ˆ˜(SUM, COUNT ๋“ฑ)

์•Œ ์ˆ˜ ์—†๋Š” ์‚ฌ์šฉ์ž 2022. 11. 19.

๋ชฉ์ฐจ

    Oracle Group by/๊ทธ๋ฃนํ•จ์ˆ˜

    ์‰ฝ๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. GROUP BY ๋‹ค์Œ์— ์˜ค๋Š” ์ปฌ๋Ÿผ์œผ๋กœ ๋จผ์ € ๊ทธ๋ฃนํ•‘์„ ํ•œ ๋‹ค์Œ ๊ทธ๋ฃนํ•จ์ˆ˜๋ฅผ ์‹คํ–‰

    SELECT deptno, 
    	   job,
    	   AVG(NVL(sal, 0)) "AVG_SAL"
    FROM emp
    GROUP BY deptno, job
    ORDER BY deptno,job;

    emp ํ…Œ์ด๋ธ”์—์„œ ๋ถ€์„œ๋ฒˆํ˜ธ, ์ง์—…์œผ๋กœ ๊ทธ๋ฃนํ•‘ ํ›„ ํ‰๊ท  ์กฐํšŒ

    ์œ„์˜ ์ฟผ๋ฆฌ๋Š” empํ…Œ์ด๋ธ”์—์„œ ๋ถ€์„œ๋ฒˆํ˜ธ(deptno)๋กœ ๋จผ์ € ๊ทธ๋ฃนํ•‘, ๊ทธ ๋‹ค์Œ ์ง์—…(job)์œผ๋กœ ๊ทธ๋ฃนํ•‘์„ ํ•œ ํ›„ SELECT์ ˆ์— ์žˆ๋Š” ๊ทธ๋ฃนํ•จ์ˆ˜์ธ AVG() ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
    ์ฃผ์˜์‚ฌํ•ญ์ด ์žˆ๋Š”๋ฐ GROUP BY์‚ฌ์šฉ ์‹œ SELECT์ ˆ์˜ ๊ทธ๋ฃนํ•จ์ˆ˜๋ฅผ ์ œ์™ธํ•œ ์ปฌ๋Ÿผ์€ ๋ฐ˜๋“œ์‹œ GROUP BY ์ ˆ์— ๋‚˜์˜จ ์ปฌ๋Ÿผ์„ ๋ช…์‹œํ•ด์•ผ ํ•œ๋‹ค. ์•ˆํ•  ๊ฒฝ์šฐ ์•„๋ž˜์ฒ˜๋Ÿผ ์—๋Ÿฌ ๋ฐœ์ƒ

    group by์— ์—†๋Š” job์„ SELECTํ•ด์„œ ๋‚˜์˜จ ์—๋Ÿฌ

    HAVING ์ ˆ

    ์ผ๋ฐ˜์ ์œผ๋กœ WHERE์ ˆ์—์„œ๋Š” ์ง‘๊ณ„ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ,

    HAVING์ ˆ์€ ์ง‘๊ณ„ํ•จ์ˆ˜๋กœ ์กฐ๊ฑด ๋น„๊ต ์‹œ ์‚ฌ์šฉํ•จ,

    HAVING์ ˆ์€ GROUP BY์ ˆ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋จ

    ๋ณดํ†ต GROUP BY์™€ ์ง‘๊ณ„ํ•จ์ˆ˜๋กœ ๊ทธ๋ฃนํ•‘ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ ๋‹ค์Œ ์กฐ๊ฑด์„ ๊ฑธ ๋•Œ ์‚ฌ์šฉ๋จ

    empํ…Œ์ด๋ธ”๊ณผ deptํ…Œ์ด๋ธ”์„ ์กฐ์ธํ•ด์„œ ์‚ฌ์›์ˆ˜๊ฐ€ 5๋ช…์ด ๋„˜๋Š” ๋ถ€์„œ์™€ ์‚ฌ์›์ˆ˜๋ฅผ ์กฐํšŒ

    ๋Œ“๊ธ€