Notice
Recent Posts
Recent Comments
Link
ยซ   2025/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

AngzavA

[SQLD] 2-2-2. SQL ํ™œ์šฉ : ๊ทธ๋ฃน ํ•จ์ˆ˜ ๋ณธ๋ฌธ

SQLD

[SQLD] 2-2-2. SQL ํ™œ์šฉ : ๊ทธ๋ฃน ํ•จ์ˆ˜

์ด์•™์ง€ 2023. 6. 8. 12:32

๐Ÿ“–ROLLUP

  • GROUP BY ์ ˆ์— ๋Œ€ํ•˜์—ฌ ์ตœ์ข… ์ง‘๊ณ„ํ•˜๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜
  • GROUP BY ROLLUP (๋ฌถ๋Š” ๊ธฐ์ค€)
  • ํ•ฉ๊ณ„๋ฅผ ์ˆœ์„œ์— ๋งž๊ฒŒ ๋ฐ˜ํ™˜ <-> CUBE : ๊ณ„์‚ฐ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์†Œ๊ณ„์™€ ํ•ฉ๊ณ„๋ฅผ ๋ฐ˜ํ™˜

 

๐Ÿ“–GROUPING

  • ROLLUP, CUBE, GROUPING SETS ๋“ฑ์˜ ๊ทธ๋ฃนํ•จ์ˆ˜์— ์˜ํ•ด ์ปฌ๋Ÿผ ๊ฐ’์ด ์†Œ๊ณ„๋‚˜ ์ดํ•ฉ ๋“ฑ ์ง‘๊ณ„๋œ ๋ฐ์ดํ„ฐ์ผ ๊ฒฝ์šฐ 1์„ ๋ฆฌํ„ด, ์•„๋‹ˆ๋ฉด 0์„ ๋ฆฌํ„ด
  • CASE WHEN์œผ๋กœ 0๊ณผ 1 ๊ตฌ๋ถ„ํ•˜์—ฌ ์‚ฌ์šฉ
SELECT CASE 
		WHEN GROUPING(A)=1 THEN 'TOTAL'
        WHEN A IS NULL THEN 'NONE' ELSE A
        END ์—์ด, SUM(B)
FROM A, B
WHERE A.A = B.A
GROUP BY ROLLUP(C);

 

๐Ÿ“–GROUPING SETS

  • UNION ALL๊ณผ ๊ฐ™์€ ํšจ๊ณผ

 

๐Ÿ“–CUBE

  • ํ•ฉ๊ณ„๋ฅผ ๋จผ์ € ํ‘œ์‹œ

โœ๏ธ๊ทธ๋ฃนํ•จ์ˆ˜

  • CUBE, GROUPING SETS, ROLLUP : ์„ธ๊ฐ€์ง€ ๊ทธ๋ฃน ํ•จ์ˆ˜ ๋ชจ๋‘ ์ผ๋ฐ˜ ๊ทธ๋ฃน ํ•จ์ˆ˜๋กœ ๋™์ผํ•œ ๊ฒฐ๊ณผ ์ถ”์ถœ
  • ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ์ฃผ์–ด์ง„ ์ปฌ๋Ÿผ์˜ ์ˆœ์„œ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ถ”์ถœํ•˜๊ฒŒ ๋˜๋Š” ๊ทธ๋ฃน ํ•จ์ˆ˜ = ROLLUP : ๋‚˜์—ด๋œ ์ปฌ๋Ÿผ์— ๋Œ€ํ•ด ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ์ง‘๊ณ„๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
  • ์ง‘๊ณ„๋œ ๋ ˆ์ฝ”๋“œ์—์„œ ์ง‘๊ณ„ ๋Œ€์ƒ ์ปฌ๋Ÿผ ์ด์™ธ ๋Œ€์ƒ ์ปฌ๋Ÿผ์€ NULL ๋ฐ˜ํ™˜
  • CUBE ๊ทธ๋ฃน ํ•จ์ˆ˜ : ์ธ์ž๋กœ ์ฃผ์–ด์ง„ ์ปฌ๋Ÿผ์˜ ๊ฒฐํ•ฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์กฐํ•ฉ์— ๋Œ€ํ•ด์„œ ์ง‘๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ ๋‹ค๋ฅธ ๊ทธ๋ฃน ํ•จ์ˆ˜์— ๋น„ํ•ด ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๋ถ€ํ•˜๊ฐ€ ํฌ๋‹ค.