AngzavA
[SQLD] 2-2-2. SQL ํ์ฉ : ๊ทธ๋ฃน ํจ์ ๋ณธ๋ฌธ
๐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 ๊ทธ๋ฃน ํจ์ : ์ธ์๋ก ์ฃผ์ด์ง ์ปฌ๋ผ์ ๊ฒฐํฉ ๊ฐ๋ฅํ ๋ชจ๋ ์กฐํฉ์ ๋ํด์ ์ง๊ณ๋ฅผ ์ํํ๋ฏ๋ก ๋ค๋ฅธ ๊ทธ๋ฃน ํจ์์ ๋นํด ์์คํ ์ ๋ํ ๋ถํ๊ฐ ํฌ๋ค.
'SQLD' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQLD] 2-2-4. SQL ํ์ฉ : PL/SQL (0) | 2023.06.08 |
---|---|
[SQLD] 2-2-3. SQL ํ์ฉ : ์๋์ฐ ํจ์ (0) | 2023.06.08 |
[SQLD] 2-2. SQL ํ์ฉ (0) | 2023.06.08 |
[SQLD] 2-1. SQL ๊ธฐ๋ณธ (1) | 2023.06.07 |
[SQLD] 1-2.๋ฐ์ดํฐ ๋ชจ๋ธ๊ณผ ์ฑ๋ฅ (0) | 2023.06.07 |