๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Database

SQL ๋ณต์ˆ˜ํ–‰ ํ•จ์ˆ˜: GROUP ํ•จ์ˆ˜์˜ ์ข…๋ฅ˜

๋ณต์ˆ˜ํ–‰ ํ•จ์ˆ˜๋ฅผ ์ผ์„ ๋•Œ๋Š” ๊ผญ GROUP BY๋กœ ๋ฌถ์–ด์„œ ์ฒ˜๋ฆฌํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค!

๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

ORA-00937: not a single-group group function
00937. 00000 -  "not a single-group group function"

 

ORDER BY๋กœ ์ •๋ ฌ์„ ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ GROUP BY ์ดํ›„์— ORDER BY๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค!

์˜ˆ์‹œ) SELECT deptno,AVG(NVL(sal, 0)) "AVG" FROM emp GROUP BY deptno ORDER BY deptno;

 

๊ทธ๋ฃน์— ๋Œ€ํ•œ ์กฐ๊ฑด์€ HAVING์œผ๋กœ ๊ฑธ์–ด์ค€๋‹ค!

 

GROUP BY ๋ฐ ๊ธฐํƒ€ ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์ •๋ฆฌ๋ฅผ ๋„ˆ๋ฌด ์ž˜ ํ•ด๋†“์€ ํŽ˜์ด์ง€๋ฅผ ์ฒจ๋ถ€ํ•˜๋‹ˆ ์ฐธ๊ณ ํ•˜์ž!

 

[์˜ค๋ผํด/SQL] GROUP BY (1) : ๊ธฐ๋ณธ ๋ฐ ์˜ˆ์ œ - ๋ฐ์ดํ„ฐ๊ทธ๋ฃนํ™”, ๊ทธ๋ฃน๋ณ„๋กœ ์ง‘๊ณ„๋œ ์ •๋ณด์˜ ๊ฒ€์ƒ‰ (ex. ๋ถ€์„œ๋ณ„

GROUP BY๋Š” ๊ฐ์ข… ์ง‘๊ณ„ํ•จ์ˆ˜, ๊ทธ๋ฃนํ•จ์ˆ˜์™€ ํ•จ๊ป˜ ์“ฐ์ด๋ฉฐ ๊ทธ๋ฃนํ™”๋œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.'OO๋ณ„ ์ •๋ณด...

blog.naver.com

 

๊ทธ๋Ÿผ ํ•จ์ˆ˜์— ์ข…๋ฅ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!

 

ํ•จ์ˆ˜๋ช…

์„ค๋ช… ๋ฐ ์‚ฌ์šฉ์˜ˆ

COUNT

COUNT(์นผ๋Ÿผ๋ช…, ๋ฌธ์ž์—ด, ์ˆซ์ž)
- ํ•ด๋‹น ์นผ๋Ÿผ ์ค‘ ๊ฐ’์ด ์žˆ๋Š” ๋ ˆ์ด๋ธ”์˜ ๊ฐฏ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. (= null ์ œ์™ธ )
- ๋ฌธ์ž์—ด ์ž…๋ ฅ์‹œ ํ•ด๋‹น ๋ฌธ์ž์—ด๊ณผ ๊ฐ™์€ ์ˆ˜๋ฅผ COUNTํ•œ๋‹ค.
- ๋งจ ๋’ค์— ๋ถ™๋Š” ์ˆซ์ž๋Š” ํฐ ์˜๋ฏธ๊ฐ€ ์—†์–ด๋ณด์ธ๋‹ค...

Tip. null๋„ ํฌํ•จํ•˜์—ฌ ๊ณ„์‚ฐํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด?
NVL ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ null์„ 0์˜ ๊ฐ’์œผ๋กœ ์ฃผ๋ฉด๋œ๋‹ค.
COUNT(์นผ๋Ÿผ๋ช…, NVL(์นผ๋Ÿผ๋ช…, 0))

SUM

SUM(์นผ๋Ÿผ๋ช…)
- ํ•ด๋‹น ์นผ๋Ÿผ์˜ ๊ฐ’์„ ๋ชจ๋‘ ๋”ํ•œ๋‹ค.

 

AVG

AVG(์นผ๋Ÿผ๋ช…)
- ํ•ด๋‹น ์นผ๋Ÿผ ์ค‘ ๊ฐ’์ด ์žˆ๋Š” ๋ ˆ์ด๋ธ”๋“ค์˜์˜ ํ‰๊ท ์„ ์ถœ๋ ฅํ•œ๋‹ค. (= null ์ œ์™ธ )

Tip. null๋„ ํฌํ•จํ•˜์—ฌ ๊ณ„์‚ฐํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด?
NVL ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ null์„ 0์˜ ๊ฐ’์œผ๋กœ ์ฃผ๋ฉด๋œ๋‹ค.
→ AVG(์นผ๋Ÿผ๋ช…, NVL(์นผ๋Ÿผ๋ช…, 0))

MAX

MAX(์นผ๋Ÿผ๋ช…)
- ์นผ๋Ÿผ ๊ฐ’ ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

MIN

MIN(์นผ๋Ÿผ๋ช…)
- ์นผ๋Ÿผ ๊ฐ’ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

STDDEV

STDDEV(์นผ๋Ÿผ๋ช…)
- ๋ถ„์‚ฐ

 

VARIANCE

VARIANCE(์นผ๋Ÿผ๋ช…)
- ํ‘œ์ค€ํŽธ์ฐจ