header-img
Info :
๋ฐ€๋„
denseยน
์žฅ๋ž˜ํฌ๋ง : ๋‹จ์œ„ ๋ถ€ํ”ผ ๋‹น ์งˆ๋Ÿ‰์ด ๋ณด๋‹ค ๋นฝ๋นฝํ•œ ์‚ฌ๋žŒ ๋˜๊ธฐ

 

 

 

 

<GROUP BY์™€ ์œˆ๋„์šฐ ํ•จ์ˆ˜Window Function๋Š” ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ๊ฐ€>

์œˆ๋„์šฐ ํ•จ์ˆ˜Window Function๋Š” 'ํ–‰์„ ์กฐ๊ฑด์— ๋งž๊ฒŒ ๊ตฌ๋ถ„ํ•ด ์ฃผ๋Š”' ํ•จ์ˆ˜๋‹ค. ์ด์ฏค ๋งํ•˜๋ฉด ๋‹น์‹  ๋จธ๋ฆฟ์†์— ๋– ์˜ค๋ฅธ ๋ฌธ๋ฒ•์ด ํ•˜๋‚˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๋งž๋‹ค. GROUP BY. ์ด๊ฒƒ ์—ญ์‹œ ํ–‰์„ ์กฐ๊ฑด์— ๋งž๊ฒŒ ๊ตฌ๋ถ„ํ•ด ์ค€๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์˜๋ฌธ์ด ๋“ ๋‹ค. GROUP BY ์ ˆ๊ณผ ๋Œ€๋น„ํ•ด ์œˆ๋„์šฐ ํ•จ์ˆ˜๋Š” ์–ด๋–ค ์ฐจ์ด์ ์ด ์žˆ๊ณ  ๊ทธ๋ž˜์„œ ๊ฒฐ๊ตญ ์–ด๋–ค ์ƒํ™ฉ์— ์‚ฌ์šฉ๋˜๋Š” ๊ฑธ๊นŒ. ์ด๋ฒˆ ํฌ์ŠคํŠธ๋Š” ์ด์ฒ˜๋Ÿผ ์œ ์‚ฌํ•œ ๋ฌธ๋งฅ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋‘ ๋ฌธ๋ฒ•, GROUP BY ์ ˆ๊ณผ ์œˆ๋„์šฐ ํ•จ์ˆ˜์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ํƒ๊ตฌํ•ด๋ณผ ๊ฒƒ์ด๋‹ค.

 

 

 

 

 

<'ํ–‰์„ ๋ฌถ๋Š”๋‹ค' ๋Š” ํ–‰๋™์— ๋Œ€ํ•œ ์ดํ•ด>

๋ฌธ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๊ธฐ ์•ž์„œ์„œ ์ฆ‰ 'ํ–‰์„ ๋ฌถ๋Š”๋‹ค'๋Š” ํ–‰๋™์— ๋Œ€ํ•ด ๋จผ์ € ์ดํ•ดํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ํ–‰์„ ๋ฌถ๋Š”๋‹ค๋Š” ๊ฒƒ์€ ์ผ์ฐจ์ ์œผ๋กœ ํ–‰ ์‚ฌ์ด์˜ ๊ณตํ†ต์ ์„ ์ฐพ๋Š”๋‹ค๋Š” ๋œป์ด๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ ์—‘์…€ ํŒŒ์ผ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์ž. 

 

์ด๋ฆ„ ์„ฑ๋ณ„ ๋‚˜์ด
๊น€์—์ด ๋‚จ 15
์ด๋น„ ์—ฌ 17
๊น€์”จ ์—ฌ 22
์ด์ด ๋‚จ 19

 

์ด ์—‘์…€ ํŒŒ์ผ์— 'ํ–‰์„ ๋ฌถ์œผ๋ฉด' ์–ด๋””์— ํฌ์ปค์Šค๋ฅผ ๋‘๋А๋ƒ์— ๋”ฐ๋ผ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‘ ๊ฐ€์ง€ ๊ฒฐ๊ณผ๋ฌผ์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

 

1) ํ–‰์— ํฌ์ปค์Šค๋ฅผ ๋‘๋Š” ๊ฒฝ์šฐ. ์•„๋ž˜๋Š” ์„ฑ๋ณ„ ๊ธฐ์ค€์œผ๋กœ ํ–‰์„ ๋ฌถ์–ด์„œ ์„ฑ๋ณ„ ๋ณ„ ์ตœ์—ฐ์žฅ์ž๋ฅผ ๊ฐ๊ฐ ์ถœ๋ ฅํ•œ ๊ฒฝ์šฐ๋‹ค.

์ด๋ฆ„ ์„ฑ๋ณ„ ๋‚˜์ด
์ด์ด ๋‚จ 19
๊น€์”จ ์—ฌ 22

 

 

2) ์—ฐ์‚ฐํ•œ ๊ฐ’์— ํฌ์ปค์Šค๋ฅผ ๋‘๋Š” ๊ฒฝ์šฐ. ์•„๋ž˜๋Š” ์ด๋ฆ„์˜ ์ฒซ ๊ธ€์ž, ์„ฑ ๊ธฐ์ค€์œผ๋กœ ํ–‰์„ ๋ฌถ์–ด์„œ ์„ฑ ๋ณ„ ๋‚˜์ด ์ตœ๋Œ€๊ฐ’์„ ๊ฐ๊ฐ ์ถœ๋ ฅํ•œ ๊ฒฝ์šฐ๋‹ค.

์„ฑ๋ณ„ ๋‚˜์ด ์ตœ๋Œ€๊ฐ’
๋‚จ 19
์—ฌ 22

 

 

๋‘˜ ๋ชจ๋‘ ํฌ์ปค์Šค๋งŒ ๋‹ค๋ฅด์ง€ 'ํ–‰์„ ๋ฌถ์—ˆ๋‹ค'๊ณ  ๋ถ€๋ฅผ ๋งŒํ•˜๋‹ค. ์ด๋•Œ ํ›„์ž๋Š” GROUP BY๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ „์ž๋Š” ์–ด๋ ต๋‹ค. GROUP BY๋Š” ํŠน์„ฑ์ƒ ๋™์ผํ•œ ๊ธฐ์ค€์„ ๊ฐ€์ง„ ๋กœ์šฐ๋“ค์„ ํ•˜๋‚˜๋กœ 'ํ•ฉ์น˜๊ณ ' ๋“ค์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜์„œ GROUP BY๋ฅผ ๊ฐ€์ง„ ์ฟผ๋ฆฌ์˜ SELECT ์ ˆ์—๋Š” GROUP BY๋œ ์ปฌ๋Ÿผ๊ณผ ํ•ฉ์ณ์ง„ ๊ฐ’๋“ค์„ ์—ฐ์‚ฐํ•˜๋Š” ์ง‘๊ณ„ํ•จ์ˆ˜๋ฐ–์— ์˜ฌ ์ˆ˜ ์—†๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋•Œ ์ „์ž๋Š” ์œˆ๋„์šฐ ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

<์œˆ๋„์šฐ ํ•จ์ˆ˜Window Fuction>

'ํ–‰๊ณผ ํ–‰ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๊ฑฐ๋‚˜ ๋น„๊ต, ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜'๊ฐ€ ์œˆ๋„์šฐ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ •์˜๋‹ค. ์œ„์—์„œ ์•Œ์•„๋ดค๋“ฏ์ด GROUP BY๋Š” ๋™์ผํ•œ ๊ธฐ์ค€์„ ๊ฐ€์ง€๋Š” ๋กœ์šฐ๋“ค์„ ๋‹ค ํ•ฉ์ณ ๋ฒ„๋ฆฌ์ง€๋งŒ, ์œˆ๋„์šฐ ํ•จ์ˆ˜๋Š” ๋ณด์กดํ•ด ์ค€๋‹ค. ์ด ๋•Œ๋ฌธ์— GROUP BY๋กœ ํ•˜์ง€ ๋ชป ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋ฃน ๋‚ด์—์„œ ์ˆœ์œ„/ ๋น„์œจ ๋ฝ‘๊ธฐ, ์—ฐ์‚ฐ์— ๋งž๋Š” ๊ฒฐ๊ณผ ๋กœ์šฐ ์ถœ๋ ฅํ•˜๊ธฐ(์ตœ๋Œ€๊ฐ’์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„์„ ๋ถˆ๋Ÿฌ์˜จ๋‹ค๊ฑฐ๋‚˜) ๋“ฑ.

 

์œˆ๋„์šฐ ํ•จ์ˆ˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์“ฐ์ธ๋‹ค.

SELECT WINDOW_FUNCTION (ARGUMENTS) OVER 
( [PARTITION BY ์ปฌ๋Ÿผ] [ORDER BY ์ปฌ๋Ÿผ] [WINDOWING ์ ˆ] )
FROM ํ…Œ์ด๋ธ”๋ช… ; 

 

   1) WINDOW_FUNCTION : ์œˆ๋„์šฐ ํ•จ์ˆ˜ 

   2) ARGUMENTS(์ธ์ˆ˜) : ํ•จ์ˆ˜์— ๋”ฐ๋ผ 0 ~ N๊ฐœ ์ธ์ˆ˜๊ฐ€ ์ง€์ •๋  ์ˆ˜ ์žˆ๋‹ค. 

   3) PARTITION BY ์ ˆ : ์ „์ฒด ์ง‘ํ•ฉ์„ ๊ธฐ์ค€์— ์˜ํ•ด ์†Œ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.   

   4) ORDER BY ์ ˆ : ์–ด๋–ค ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•  ์ง€ order by ์ ˆ์„ ๊ธฐ์ˆ ํ•œ๋‹ค.

   5) WINDOWING ์ ˆ : WINDOWING ์ ˆ์€ ํ•จ์ˆ˜์˜ ๋Œ€์ƒ์ด ๋˜๋Š” ํ–‰ ๊ธฐ์ค€์˜ ๋ฒ”์œ„๋ฅผ ๊ฐ•๋ ฅํ•˜๊ฒŒ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

์ด๋•Œ์˜ WINDOW_FUNCTION์—๋Š” ์ „์šฉ ์œˆ๋„์šฐ ํ•จ์ˆ˜ ์™ธ์—๋„ ๋‹ค์–‘ํ•œ ๊ธฐ์กด ํ•จ์ˆ˜๋ฅผ ๊ฐ€์ ธ๋‹ค ์“ธ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด ๋ถ€๋ถ„์„ ์ด ํฌ์ŠคํŠธ์—์„œ ์ •๋ฆฌํ•˜์ง€๋Š” ์•Š๊ณ  ์ฐธ๊ณ  ํฌ์ŠคํŠธ ์ค‘ ํ•ด๋‹น ๋‚ด์šฉ์— ๋Œ€ํ•ด ์ž˜ ์ •๋ฆฌํ•œ ํฌ์ŠคํŠธ๊ฐ€ ์žˆ์–ด ์žฌ์ธ์šฉํ•œ๋‹ค*๋งํฌ๋Š” SQL ์ „๋ฌธ๊ฐ€ ๊ฐ€์ด๋“œ 2013 Edition๋ฅผ ์š”์•ฝํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค. ํ•ด๋‹น ํฌ์ŠคํŠธ๋ฅผ ์ฐธ์กฐํ•ด ์“ฐ๋ฉด, WINDOW_FUNCTION์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•จ์ˆ˜๋“ค์ด ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

 

   1) ์ˆœ์œ„ ํ•จ์ˆ˜: RANK, DENSE_RANK, ROW_NUMBER

   2) ์ง‘๊ณ„ ํ•จ์ˆ˜: SUM, MAX, MIN, AVG, COUNT

   3) ๋น„์œจ ํ•จ์ˆ˜: CUME_DIST, PERCENT_RANK, NTILE, RATIO_TO_REPORT

 

์œˆ๋„์šฐ ํ•จ์ˆ˜๋Š” SQL์˜ ๋‹ค๋ฅธ ๋ฌธ๋ฒ•๋“ค๋ณด๋‹จ ๊ฝค ๋‚œ์ด๋„๊ฐ€ ์žˆ์–ด ์ง„์ž…์žฅ๋ฒฝ์ด ๋†’์ง€๋งŒ, ์ผ๋‹จ ์ตํ˜€๋‘๊ณ  ๋‚˜๋ฉด ์ฟผ๋ฆฌ ๋‹ค์ด์–ดํŠธ์— ๋„์›€์„ ์ฃผ๋Š” ํšจ์ž ํ•จ์ˆ˜๋‹ค. ์‹œ๊ฐ„ ๋‚ด์„œ ์ต์ˆ™ํ•ด์ ธ ๋ณด์ž.

 

 

 

 

 
๋”๋ณด๊ธฐ
TOOLS/SQL