ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/DataBase

[SQL] ์˜ค๋ผํด ๋‚ด์žฅ ํ•จ์ˆ˜ - ๋‹ค์ค‘ํ–‰ ํ•จ์ˆ˜

NaNaRin๐Ÿ™ƒ 2021. 3. 3. 20:41

1. ๋‹ค์ค‘ํ–‰ ํ•จ์ˆ˜

- ๊ทธ๋ฃน ํ•จ์ˆ˜ ๋˜๋Š” ๋ณต์ˆ˜ํ–‰ ํ•จ์ˆ˜๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค

- ์—ฌ๋Ÿฌ ํ–‰์„ ๋ฐ”ํƒ•์œผ๋กœ ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ ๊ฐ’์„ ๋„์ถœํ•ด ๋‚ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜

- ํ•˜๋‚˜์˜ ํ–‰์œผ๋กœ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธ์ ์œผ๋กœ ์—ฌ๋Ÿฌ ํ–‰์ด ๊ฒฐ๊ณผ๋กœ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ์นผ๋Ÿผ์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค

 

2. ์ง€์ •๋œ ๋ฐ์ดํ„ฐ์˜ ํ•ฉ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” SUM ํ•จ์ˆ˜

- NULL ๋ฐ์ดํ„ฐ๋Š” ์ œ์™ธํ•˜๊ณ  ํ•ฉ๊ณ„๋ฅผ ๊ตฌํ•ด ๋ฐ˜ํ™˜

- DISTINCT : ์ค‘๋ณต๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ œ์™ธ / ALL : ์ค‘๋ณต๋˜๋Š” ๋ฐ์ดํ„ฐ ์ œ๊ฑฐ ์—†์ด | ์ฐธ๊ณ 

SUM([DISTINCT or ALL (์„ ํƒ)] [ํ•ฉ๊ณ„๋ฅผ ๊ตฌํ•  ์นผ๋Ÿผ์ด๋‚˜ ์—ฐ์‚ฐ์ž / ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ])

-- 1.
SELECT	SUM(COMM)
FROM	EMP;

-- 2. 3. 4. DISTINCT, ALL ์‚ฌ์šฉ
SELECT	SUM(DISTINCT SAL),
		SUM(ALL SAL),
        SUM(SAL)
FROM	EMP;        

  (1) COMM ์นผ๋Ÿผ์˜ ๋ชจ๋“  ํ–‰์˜ ํ•ฉ๊ณ„๋ฅผ ๊ตฌํ•ด ๋ฐ˜ํ™˜

  (2) SUM(DISTINCT SAL) : SAL ์นผ๋Ÿผ์˜ ๋ชจ๋“  ํ–‰ ์ค‘ ์ค‘๋ณต๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•œ ๋’ค ํ•ฉ๊ณ„๋ฅผ ๋ฐ˜ํ™˜
  (3) SUM(ALL SAL) : SAL ์นผ๋Ÿผ์˜ ๋ชจ๋“  ํ–‰์˜ ํ•ฉ๊ณ„๋ฅผ ๊ตฌํ•ด ๋ฐ˜ํ™˜
  (4) SUM(SAL) : SAL ์นผ๋Ÿผ์˜ ๋ชจ๋“  ํ–‰์˜ ํ•ฉ๊ณ„๋ฅผ ๊ตฌํ•ด ๋ฐ˜ํ™˜. =SUM(ALL SAL)

 

3. ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•ด ์ฃผ๋Š” COUNT ํ•จ์ˆ˜

- ๊ฒฐ๊ณผ ํ–‰์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜

- COUNT(*)๋Š” SELECT๋ฌธ์˜ ๊ฒฐ๊ณผ ๊ฐ’์œผ๋กœ ๋‚˜์˜จ ํ–‰ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ด ์คŒ

- ๋ฐ์ดํ„ฐ ๊ฐ’์ด NULL ์ธ ๊ฒฝ์šฐ ๋ฐ˜ํ™˜ ๊ฐœ์ˆ˜์—์„œ ์ œ์™ธ๋จ(= NULL์ด ์•„๋‹Œ ํ–‰์˜ ์ˆ˜๋งŒ ์นด์šดํŠธ)

- DISTINCT : ์ค‘๋ณต๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ œ์™ธ / ALL : ์ค‘๋ณต๋˜๋Š” ๋ฐ์ดํ„ฐ ์ œ๊ฑฐ ์—†์ด | ์ฐธ๊ณ 

COUNT([DISTINCT or ALL (์„ ํƒ)] [๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•  ์นผ๋Ÿผ์ด๋‚˜ ์—ฐ์‚ฐ์ž / ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ])

-- 1.
SELECT	COUNT(*)
FROM	EMP;

-- 2.
SELECT	COUNT(*)
FROM	EMP
WHERE	DEPTNO = 30;

-- 3. 4. 5. DISTINCT, ALL ์‚ฌ์šฉ
SELECT	COUNT(DISTINCT SAL),
		COUNT(ALL SAL),
        COUNT(SAL)
FROM	EMP;        

  (1) EMP ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰์˜ ์ˆ˜(= ๋ชจ๋“  ์‚ฌ์›์˜ ์ˆ˜)๋ฅผ ๊ตฌํ•ด ๋ฐ˜ํ™˜

  (2) DEPTNO๊ฐ€ 30์ธ ๋ชจ๋“  ํ–‰์˜ ์ˆ˜๋ฅผ ๊ตฌํ•ด ๋ฐ˜ํ™˜

  (3) COUNT(DISTINCT SAL) : SAL ์นผ๋Ÿผ์˜ ๋ชจ๋“  ํ–‰ ์ค‘ ์ค‘๋ณต๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•œ ํ–‰์˜ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜
  (4) COUNT(ALL SAL) : SAL ์นผ๋Ÿผ์˜ ๋ชจ๋“  ํ–‰์˜ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜
  (5) COUNT(SAL) : SAL ์นผ๋Ÿผ์˜ ๋ชจ๋“  ํ–‰์˜ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜. =COUNT(ALL SAL)

 

4. ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•˜๋Š” MAX, MIN ํ•จ์ˆ˜

- ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ์ค‘ ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’์„ ๋ฐ˜ํ™˜

- ๋‚ ์งœ ๋ฐ ๋ฌธ์ž ๋ฐ์ดํ„ฐ ์—ญ์‹œ ํฌ๊ธฐ ๋น„๊ต๊ฐ€ ๊ฐ€๋Šฅ. ๋‚ ์งœ๋Š” ์ตœ๊ทผ ๋‚ ์งœ์ผ์ˆ˜๋ก ์ตœ๋Œ“๊ฐ’

- DISTINCT / ALL : ์ง€์ •์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ค‘๋ณต ์ œ๊ฑฐ์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ๊ฐ™์€ ๊ฒฐ๊ณผ ๊ฐ’์ด ๋ฐ˜ํ™˜๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ ์ฐธ๊ณ 

MAX([DISTINCT or ALL (์„ ํƒ)] [์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•  ์นผ๋Ÿผ์ด๋‚˜ ์—ฐ์‚ฐ์ž / ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ])
MIN([DISTINCT or ALL (์„ ํƒ)] [์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•  ์นผ๋Ÿผ์ด๋‚˜ ์—ฐ์‚ฐ์ž / ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ])

-- 1.
SELECT	MAX(SAL), MIN(SAL)
FROM	EMP
WHERE	DEPTNO = 10;

-- 2.
SELECT	MAX(HIREDATE), MIN(HIREDATE)
FROM	EMP
WHERE	DEPTNO = 10;

  (1) DEPTNO๊ฐ€ 10์ธ ์ง์›์˜ SAL ์นผ๋Ÿผ ์ค‘ ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Œ๊ฐ’ ์ถœ๋ ฅ

  (2) DEPTNO๊ฐ€ 10์ธ ์ง์›์˜ HIREDATE ์นผ๋Ÿผ ์ค‘ ์ตœ๋Œ“๊ฐ’(๊ฐ€์žฅ ์ตœ๊ทผ)๊ณผ ์ตœ์†Œ๊ฐ’(๊ฐ€์žฅ ๊ณผ๊ฑฐ) ์ถœ๋ ฅ

 

5. ํ‰๊ท  ๊ฐ’์„ ๊ตฌํ•˜๋Š” AVG ํ•จ์ˆ˜

- ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ํ‰๊ท ์„ ๊ตฌํ•ด ๋ฐ˜ํ™˜

- ์ˆซ์ž ๋˜๋Š” ์ˆซ์ž๋กœ ์•”์‹œ์  ํ˜• ๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

- DISTINCT : ์ค‘๋ณต๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ œ์™ธ / ALL : ์ค‘๋ณต๋˜๋Š” ๋ฐ์ดํ„ฐ ์ œ๊ฑฐ ์—†์ด | ์ฐธ๊ณ 

AVG([DISTINCT or ALL (์„ ํƒ)] [ํ‰๊ท ๊ฐ’์„ ๊ตฌํ•  ์นผ๋Ÿผ์ด๋‚˜ ์—ฐ์‚ฐ์ž / ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ])

-- 1.
SELECT	AVG(SAL)
FROM	EMP
WHERE	DEPTNO = 30;

-- 2.
SELECT	AVG(DISTINCT SAL)
FROM	EMP
WHERE	DEPTNO = 30;

  (1) DEPTNO๊ฐ€ 30์ธ ์ง์›์˜ SAL ์นผ๋Ÿผ์˜ ํ‰๊ท ์„ ๋ฐ˜ํ™˜

  (2) DEPTNO๊ฐ€ 30์ธ ์ง์›์˜ SAL ์นผ๋Ÿผ์˜ ์ค‘๋ณต๊ฐ’์„ ์ œ๊ฑฐํ•œ ํ›„์˜ ํ‰๊ท ์„ ๋ฐ˜ํ™˜