728x90

๐Ÿ’ฅ๊ทธ๋ฃน ํ•จ์ˆ˜

: ํ–‰ ์ง‘ํ•ฉ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๊ทธ๋ฃน๋ณ„๋กœ ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ ์‚ฐ์ถœ

  • ๋ชจ๋“  ๊ทธ๋ฃนํ•จ์ˆ˜๋Š” NULL๊ฐ’์„ ๋ฌด์‹œ 
  • NULL๊ฐ’ ๋Œ€์ฒดํ•˜๋ ค๋ฉด NVL, NVL2, COALESCE, CASE, DECODEํ•จ์ˆ˜ ์‚ฌ์šฉ.
  • ๊ทธ๋ฃนํ•จ์ˆ˜๋Š” select ํ‚ค์›Œ๋“œ ๋‹ค์Œ์— ๋ฐฐ์น˜๋จ.
  • ์—ฌ๋Ÿฌ ๊ทธ๋ฃน ํ•จ์ˆ˜๋ฅผ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ•จ๊ป˜ ์‚ฌ์šฉ๊ฐ€๋Šฅ.

 

๐ŸŽˆ AVG, MAX, MIN, SUM

  • ์ˆซ์ž ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด AVG, SUM +STDDEV, VARIANCE ํ•จ์ˆ˜ ์‚ฌ์šฉ๊ฐ€๋Šฅ
  • ์ˆซ์ž, ๋ฌธ์ž, ๋‚ ์งœ ๋ฐ์ดํ„ฐ ์œ ํ˜•์— ๋Œ€ํ•ด MIN, MAXํ•จ์ˆ˜ ์‚ฌ์šฉ๊ฐ€๋Šฅ
  • STDDEV : Standard Deviation(ํ‘œ์ค€ํŽธ์ฐจ)
    VARIANCE : ๋ถ„์‚ฐ
SELECT AVG(salary), MAX(salary), MIN(salary), SUM(salary)
FROM employees
WHERE job_id LIKE '%REP%';

โž• COUNT

COUNT(*) ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋Š” ํ…Œ์ด๋ธ”์˜ ํ–‰ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ (์ค‘๋ณต, NULL ํฌํ•จ)
COUNT(expr) expr์— ๋Œ€ํ•ด null์ด ์•„๋‹Œ ๊ฐ’์„ ๊ฐ€์ง„ ํ–‰์˜ ์ˆ˜ ๋ฐ˜ํ™˜.
COUNT(DISTINCT expr)  expr์˜ null์ด ์•„๋‹Œ unique ๊ฐ’์˜ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜.
SELECT COUNT(DISTINCT department_id)
FROM employees;

๐Ÿ—จ๏ธ ๊ทธ๋ฃน ํ•จ์ˆ˜ ๋ฐ null๊ฐ’

- ๊ทธ๋ฃน ํ•จ์ˆ˜๋Š” ์—ด์— ์žˆ๋Š” ๋„๊ฐ’์„ ๋ฌด์‹œ
- NVL ํ•จ์ˆ˜๋Š” ๊ฐ•์ œ๋กœ ๊ทธ๋ฃน ํ•จ์ˆ˜์— ๋„๊ฐ’์ด ํฌํ•จ๋˜๋„๋ก.

SELECT AVG(commission_pct)
FROM employees; //๋„๊ฐ’ ์ œ์™ธ

SELECT AVG(NVL(commission_pct))
FROM employees; //๋„๊ฐ’๊นŒ์ง€ ํฌํ•จ์‹œํ‚ด.

 

โ‡๏ธ ๋ฐ์ดํ„ฐ ๊ทธ๋ฃน ์ƒ์„ฑ: GROUP BY ์ ˆ

  • ํ…Œ์ด๋ธ”์˜ ํ–‰์„ ๋‘ ๊ฐœ ์ด์ƒ์˜ ์—ด๋กœ ๊ทธ๋ฃนํ™”
  • SELECT์ ˆ์— ๊ทธ๋ฃนํ•จ์ˆ˜๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฒฝ์šฐ > GROUP BY์ ˆ์— ์—ด์„ ๋ฐ˜๋“œ์‹œ ํฌํ•จ์‹œ์ผœ์•ผ ํ•จ.(alias ์‚ฌ์šฉ ๋ถˆ๊ฐ€)
  • ๊ทธ๋ฃน ํ•จ์ˆ˜์— ์—†๋Š” SELECT์ ˆ์˜ ๋ชจ๋“  ์—ด์€ GROUP BY์ ˆ์— ์žˆ์–ด์•ผ ํ•จ.
  • GROUP BY์ ˆ์— ์ง€์ •๋œ ์—ด์„ ๊ผญ SELECT์ ˆ์— ์ง€์ •ํ•˜์ง€ ์•Š์•„๋„ ๋จ.
  • ๊ทธ๋ฃนํ™” ์ˆœ์„œ๋ฅผ ์ง€์ •ํ•˜๋ ค๋ฉด ORDER BY์ ˆ์„ ์‚ฌ์šฉ
  • ๊ทธ๋ฃนํ•จ์ˆ˜๋Š” WHERE์ ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ฃน ์ œํ•œ ๋ถˆ๊ฐ€. >> HAVING์ ˆ ์‚ฌ์šฉ
SELECT department_id, AVG(salary)
FROM employees
GROUP BY department_id
HAVING AVG(salary) >8000;
728x90

BELATED ARTICLES

more