๊ฐ์
์ด ๊ธ์ ์ค๋ผํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ทธ๋ฃน๋ณ ์๊ณ ๋ฐ ํฉ๊ณ๋ฅผ ๊ตฌํ๋ ๋ฐ์ ์ฌ์ฉ๋๋ ROLLUP๊ณผ CUBE์ ๋ํด ์ค๋ช ํฉ๋๋ค. ROLLUP๊ณผ CUBE๋ ์ง๊ณ ํจ์์ ํจ๊ป ์ฌ์ฉ๋์ด ๋ฐ์ดํฐ๋ฅผ ๋ค์ํ ์ฐจ์์์ ๊ทธ๋ฃนํํ๊ณ ๊ณ์ธต์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ์ํ๋ ์์ค์ ์ง๊ณ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์ป์ ์ ์์ต๋๋ค.
๋ค์์ผ๋ก, ROLLUP๊ณผ CUBE์ ๊ฐ๋ ๊ณผ ์ญํ ์ ๋ํด ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค.
ROLLUP๊ณผ CUBE์ ๊ฐ๋ ๊ณผ ์ญํ
ROLLUP
ROLLUP์ ๊ทธ๋ฃนํ๋ ๋ฐ์ดํฐ์ ๊ณ์ธต์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๊ธฐ ์ํ ๊ธฐ๋ฅ์ ๋๋ค. ROLLUP ์ ์ ๋ค์ํ ์์ค์ ๊ทธ๋ฃนํ ํญ๋ชฉ์ ๋ํ๋ด๋ ์ด ๋ชฉ๋ก์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ROLLUP ์ ์ ํฌํจ๋ ์ด ๋ชฉ๋ก์ ๊ณ์ธต์ ์ธ ์์๋ก ์ ๋ ฌ๋ฉ๋๋ค. ์ฟผ๋ฆฌ์์ ROLLUP์ ์ฌ์ฉํ๋ฉด ROLLUP ์ ์ ์๋ ๊ฐ ์ด์ ๋ํด ์๋ธ ํ ํ์ ์์ฑํ์ฌ ๊ฒฐ๊ณผ์ ํ์ํฉ๋๋ค. ์ด๋ฌํ ์๋ธ ํ ํ์ ROLLUP ์ ์ ๋ช ์๋ ์ด์ ์์์ ๋ฐ๋ผ ๊ณ์ธต์ ์ผ๋ก ํ์๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์ด๋ค ํ์ฌ์ ๋งค์ถ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํ์ฌ ์ฐ๋, ๋ถ๊ธฐ, ์๋ณ๋ก ๋๋๊ณ ์ ํ๋ค๋ฉด, ROLLUP์ ์ฌ์ฉํ์ฌ ๊ณ์ธต์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค. ROLLUP์๋ '์ฐ๋', '๋ถ๊ธฐ', '์'์ด๋ผ๋ ์ด ๋ชฉ๋ก์ด ํฌํจ๋๋ฉฐ, ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ ์ ์์ต๋๋ค.
- ์ ์ฒด ๋งค์ถ
- ์ฐ๋๋ณ ๋งค์ถ
- ์ฐ๋๋ณ, ๋ถ๊ธฐ๋ณ ๋งค์ถ
- ์ฐ๋๋ณ, ๋ถ๊ธฐ๋ณ, ์๋ณ ๋งค์ถ
CUBE
CUBE๋ ROLLUP๊ณผ ๋น์ทํ์ง๋ง, ๋ ๋ค์ํ ์ฐจ์์ ์ง๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ๊ธฐ๋ฅ์ ๋๋ค. ROLLUP๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก CUBE ์ ์ ๊ทธ๋ฃนํ๋ ๋ฐ์ดํฐ์ ๊ณ์ธต์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํฉ๋๋ค. ํ์ง๋ง CUBE ์ ์ ํฌํจ๋ ์ด ๋ชฉ๋ก์ ์ ๋ ฌ๋์ง ์์ผ๋ฉฐ, ๋ชจ๋ ๊ฐ๋ฅํ ์ด ์กฐํฉ์ ๋ํ ์๋ธ ํ ํ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํฉ๋๋ค.
์์์ ์ธ๊ธํ ์์์์, CUBE๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
- ์ ์ฒด ๋งค์ถ
- ์ฐ๋๋ณ ๋งค์ถ
- ๋ถ๊ธฐ๋ณ ๋งค์ถ
- ์๋ณ ๋งค์ถ
- ์ฐ๋๋ณ, ๋ถ๊ธฐ๋ณ ๋งค์ถ
- ์ฐ๋๋ณ, ์๋ณ ๋งค์ถ
- ๋ถ๊ธฐ๋ณ, ์๋ณ ๋งค์ถ
- ์ฐ๋๋ณ, ๋ถ๊ธฐ๋ณ, ์๋ณ ๋งค์ถ
๋ฐ๋ผ์, CUBE๋ฅผ ์ฌ์ฉํ๋ฉด ROLLUP๋ณด๋ค ๋์ฑ ๋ค์ํ ์ฐจ์์์ ์ง๊ณ๋ ๋ฐ์ดํฐ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
ROLLUP์ ์ด์ฉํ ๊ทธ๋ฃน๋ณ ์๊ณ ํฉ๊ณ ๊ตฌํ๊ธฐ
ROLLUP์ ๊ทธ๋ฃนํ๋ ๋ฐ์ดํฐ์ ๊ณ์ธต์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ์ฌ ๊ทธ๋ฃน๋ณ ์๊ณ์ ์ ์ฒด ํฉ๊ณ๋ฅผ ๊ตฌํ ์ ์๋ ๋งค์ฐ ์ ์ฉํ ๊ธฐ๋ฅ์ ๋๋ค. ROLLUP์ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ์ด์ ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํ๊ณ , ๊ฐ ๊ทธ๋ฃน์ ์๊ณ ๋ฐ ์ ์ฒด ํฉ๊ณ๋ฅผ ํ ๋ฒ์ ์กฐํํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ฝ๊ฒ ํ์ ํ๊ณ ์ํ๋ ์์ค์ ์ง๊ณ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
๋ค์์ ROLLUP์ ์ฌ์ฉํ์ฌ ๊ทธ๋ฃน๋ณ ์๊ณ์ ์ ์ฒด ํฉ๊ณ๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ๋ธ ์์์ ๋๋ค. ์์ ๋ฐ์ดํฐ๋ '์ ํ', '์ง์ญ', '์ฐ๋', '์๋ณ ํ๋งค๋' ์นผ๋ผ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
SELECT ์ ํ, ์ง์ญ, ์ฐ๋, ์, SUM(ํ๋งค๋) AS ํ๋งค๋
FROM ๋งค์ถ
GROUP BY ROLLUP (์ ํ, ์ง์ญ, ์ฐ๋, ์)
ORDER BY ์ ํ, ์ง์ญ, ์ฐ๋, ์;
์์ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ฉด, ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์ ํ | ์ง์ญ | ์ฐ๋ | ์ | ํ๋งค๋
------+------+-------+-------+------
์ ํA | ์ง์ญA | 2019 | 1 | 50
์ ํA | ์ง์ญA | 2019 | 2 | 70
์ ํA | ์ง์ญA | 2019 | NULL | 120 -- ์ฐ๋๋ณ ์๊ณ
์ ํA | ์ง์ญA | NULL | NULL | 120 -- ์ง์ญ๋ณ ์๊ณ
์ ํA | NULL | NULL | NULL | 120 -- ์ ํ๋ณ ์๊ณ
NULL | NULL | NULL | NULL | 120 -- ์ ์ฒด ํฉ๊ณ
์์ ๊ฒฐ๊ณผ์์ ๋ณผ ์ ์๋ฏ์ด, ROLLUP ์ ์ ๋ช ์๋ ์ด์ ์์๋๋ก ์๋ธ ํ ํ์ด ๊ณ์ธต์ ์ผ๋ก ํ์๋ฉ๋๋ค. ๋ง์ง๋ง ํ์ ์ ์ฒด ํฉ๊ณ๋ฅผ ๋ํ๋ ๋๋ค.
๋ฐ๋ผ์, ROLLUP์ ์ฌ์ฉํ์ฌ ๊ทธ๋ฃน๋ณ ์๊ณ์ ์ ์ฒด ํฉ๊ณ๋ฅผ ๊ตฌํ ์ ์์ผ๋ฉฐ, ๋ฐ์ดํฐ์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ฝ๊ฒ ํ์ ํ ์ ์์ต๋๋ค.
CUBE๋ฅผ ์ด์ฉํ ๊ทธ๋ฃน๋ณ ์๊ณ ํฉ๊ณ ๊ตฌํ๊ธฐ
CUBE๋ ROLLUP๊ณผ ๋น์ทํ์ง๋ง, ๋ ๋ค์ํ ์ฐจ์์ ์ง๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ๊ธฐ๋ฅ์ ๋๋ค. ROLLUP๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก CUBE๋ฅผ ์ฌ์ฉํ์ฌ ๊ทธ๋ฃน๋ณ ์๊ณ์ ์ ์ฒด ํฉ๊ณ๋ฅผ ๊ตฌํ ์ ์์ต๋๋ค. CUBE๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฅํ ๋ชจ๋ ์ด ์กฐํฉ์ ๋ํ ์๋ธ ํ ํ์ ์์ฑํ์ฌ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ํ์ํฉ๋๋ค.
๋ค์์ CUBE๋ฅผ ์ฌ์ฉํ์ฌ ๊ทธ๋ฃน๋ณ ์๊ณ์ ์ ์ฒด ํฉ๊ณ๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ๋ธ ์์์ ๋๋ค. ์์ ๋ฐ์ดํฐ๋ '์ ํ', '์ง์ญ', '์ฐ๋', '์๋ณ ํ๋งค๋' ์นผ๋ผ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
SELECT ์ ํ, ์ง์ญ, ์ฐ๋, ์, SUM(ํ๋งค๋) AS ํ๋งค๋
FROM ๋งค์ถ
GROUP BY CUBE (์ ํ, ์ง์ญ, ์ฐ๋, ์)
ORDER BY ์ ํ, ์ง์ญ, ์ฐ๋, ์;
์์ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ฉด, ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์ ํ | ์ง์ญ | ์ฐ๋ | ์ | ํ๋งค๋
------+------+-------+-------+------
์ ํA | ์ง์ญA | 2019 | 1 | 50
์ ํA | ์ง์ญA | 2019 | 2 | 70
์ ํA | ์ง์ญA | 2019 | NULL | 120 -- ์ฐ๋๋ณ ์๊ณ
์ ํA | ์ง์ญA | NULL | 1 | 50
์ ํA | ์ง์ญA | NULL | 2 | 70
์ ํA | ์ง์ญA | NULL | NULL | 120 -- ์ฐ๋๋ณ, ์๋ณ ์๊ณ
์ ํA | NULL | 2019 | 1 | 50
์ ํA | NULL | 2019 | 2 | 70
์ ํA | NULL | 2019 | NULL | 120 -- ์ง์ญ๋ณ ์๊ณ
์ ํA | NULL | NULL | 1 | 50
์ ํA | NULL | NULL | 2 | 70
์ ํA | NULL | NULL | NULL | 120 -- ์ง์ญ๋ณ, ์๋ณ ์๊ณ
NULL | ์ง์ญA | 2019 | 1 | 50
NULL | ์ง์ญA | 2019 | 2 | 70
NULL | ์ง์ญA | 2019 | NULL | 120 -- ์ ํ๋ณ ์๊ณ
NULL | ์ง์ญA | NULL | 1 | 50
NULL | ์ง์ญA | NULL | 2 | 70
NULL | ์ง์ญA | NULL | NULL | 120 -- ์ ํ๋ณ, ์๋ณ ์๊ณ
NULL | NULL | 2019 | 1 | 50
NULL | NULL | 2019 | 2 | 70
NULL | NULL | 2019 | NULL | 120 -- ์ ํ๋ณ, ์ง์ญ๋ณ ์๊ณ
NULL | NULL | NULL | 1 | 50
NULL | NULL | NULL | 2 | 70
NULL | NULL | NULL | NULL | 120 -- ์ ์ฒด ํฉ๊ณ
์์ ๊ฒฐ๊ณผ์์ ๋ณผ ์ ์๋ฏ์ด, CUBE ์ ์ ๋ช ์๋ ์ด์ ๋ชจ๋ ์กฐํฉ์ ๋ํด ์๋ธ ํ ํ์ด ๊ณ์ธต์ ์ผ๋ก ํ์๋ฉ๋๋ค. ๋ง์ง๋ง ํ์ ์ ์ฒด ํฉ๊ณ๋ฅผ ๋ํ๋ ๋๋ค.
๋ฐ๋ผ์, CUBE๋ฅผ ์ฌ์ฉํ์ฌ ๊ทธ๋ฃน๋ณ ์๊ณ์ ์ ์ฒด ํฉ๊ณ๋ฅผ ๊ตฌํ ์ ์์ผ๋ฉฐ, ๊ฐ๋ฅํ ๋ชจ๋ ์ฐจ์์ ์ง๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ค์ํ ๋ฐ์ดํฐ ๋ถ์ ๋ฐ ์์ฝ์ ์ํํ ์ ์์ต๋๋ค.
ROLLUP๊ณผ CUBE์ ์ฐจ์ด์ ๊ณผ ์ฌ์ฉ ์ ๊ณ ๋ คํด์ผ ํ ์ฌํญ
ROLLUP๊ณผ CUBE๋ ๊ทธ๋ฃนํ๋ ๋ฐ์ดํฐ์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ํ์ํ์ฌ ๊ทธ๋ฃน๋ณ ์๊ณ์ ์ ์ฒด ํฉ๊ณ๋ฅผ ๊ตฌํ๋๋ฐ ์ฌ์ฉ๋๋ ๊ธฐ๋ฅ์ ๋๋ค. ๊ทธ๋ฌ๋ ROLLUP๊ณผ CUBE๋ ๋ช ๊ฐ์ง ์ฐจ์ด์ ๊ณผ ์ฌ์ฉ ์ ๊ณ ๋ คํด์ผ ํ ์ฌํญ์ด ์์ต๋๋ค.
ROLLUP๊ณผ CUBE์ ์ฐจ์ด์
์๋ธ ํ ํ์ ์์ค: ROLLUP์ ์ง์ ๋ ์ด์ ์์์ ๋ฐ๋ผ ์๋ธ ํ ํ์ด ๊ณ์ธต์ ์ผ๋ก ํ์๋๋ฉฐ, ๋ง์ง๋ง ํ์ ์ ์ฒด ํฉ๊ณ๋ฅผ ๋ํ๋ ๋๋ค. CUBE๋ ๊ฐ๋ฅํ ๋ชจ๋ ์ด ์กฐํฉ์ ๋ํ ์๋ธ ํ ํ์ ์์ฑํ์ฌ ๊ณ์ธต๊ตฌ์กฐ๋ฅผ ํ์ํฉ๋๋ค.
๊ฒฐ๊ณผ์ ๋ค์์ฑ: ROLLUP์ ๊ฐ ์ด์ ์กฐํฉ์ ๋ํ ์๋ธ ํ ํ์ ์์ฑํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ด A, B, C๋ก ROLLUP์ ์ํํ๋ฉด (A), (A, B), (A, B, C), (B), (B, C), (C)์ ์๋ธ ํ ํ์ด ์์ฑ๋ฉ๋๋ค. CUBE๋ ๊ฐ๋ฅํ ๋ชจ๋ ์ด ์กฐํฉ์ ๋ํ ์๋ธ ํ ํ์ ์์ฑํ๋ฉฐ, ๋ชจ๋ ๊ฐ๋ฅํ ์กฐํฉ์ด ํฌํจ๋ฉ๋๋ค.
๊ฒฐ๊ณผ์ ํฌ๊ธฐ: CUBE๋ ์๋ธ ํ ํ์ ๊ณ์ฐํ๋ ๋ฐ ROLLUP์ ๋นํด ๋ ๋ง์ ๊ณ์ฐ์ ์ํํ๋ฏ๋ก, ๊ฒฐ๊ณผ ์ธํธ์ ํฌ๊ธฐ๊ฐ ํฌ๊ฒ ์ฆ๊ฐํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ CUBE๋ฅผ ์ฌ์ฉํ ๋๋ ๊ฒฐ๊ณผ ์ธํธ์ ํฌ๊ธฐ๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
์ฌ์ฉ ์ ๊ณ ๋ คํด์ผ ํ ์ฌํญ
์ํฉ์ ๋ฐ๋ฅธ ์ ํ: ROLLUP์ ๊ณ์ธต ๊ตฌ์กฐ๊ฐ ํ์ํ ์ํฉ์์ ์ ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๊ตฌ๋งค ๋ฐ์ดํฐ์ ์ ํ, ์ง์ญ, ์ฐ๋, ์๋ณ ํ๋งค๋์ ๊ณ์ธต์ ์ผ๋ก ์กฐํํ์ฌ ๋ถ์ํ๋ ๊ฒฝ์ฐ์๋ ROLLUP์ ์ฌ์ฉํ ์ ์์ต๋๋ค. CUBE๋ ๊ฐ๋ฅํ ๋ชจ๋ ์ฐจ์์ ์ง๊ณ ๊ฒฐ๊ณผ๊ฐ ํ์ํ ๊ฒฝ์ฐ์ ์ ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ค์ฐจ์ ๋ฐ์ดํฐ ํ๋ธ๋ฅผ ๋ถ์ํ๊ณ ์ ํ ๋ CUBE๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ฒฐ๊ณผ์ ์ดํด: ROLLUP๊ณผ CUBE๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ์ธต์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ง๋ง, ๊ฒฐ๊ณผ ์ธํธ์ ํฌ๊ธฐ๊ฐ ์ปค์ง๊ณ ๊ฒฐ๊ณผ๋ฅผ ํด์ํ๋ ๊ฒ์ด ๋ณต์กํด์ง ์ ์์ต๋๋ค. ๊ฒฐ๊ณผ๋ฅผ ์ดํดํ๊ณ ํด์ํ๊ธฐ ์ํด ์๊ฐํ ๋๊ตฌ๋ ์ถ๊ฐ์ ์ธ ์ง์๋ฅผ ์ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ฑ๋ฅ ๊ณ ๋ ค: CUBE๋ ๊ฐ๋ฅํ ๋ชจ๋ ์ด ์กฐํฉ์ ๋ํ ์๋ธ ํ ํ์ ๊ณ์ฐํ๋ฏ๋ก, ROLLUP์ ๋นํด ๋ ๋ง์ ๊ณ์ฐ์ ์ํํฉ๋๋ค. ๋ฐ๋ผ์ ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ธํธ์์ CUBE๋ฅผ ์ฌ์ฉํ ๋๋ ์ฑ๋ฅ ์ด์๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์ฟผ๋ฆฌ ์ฑ๋ฅ์ ํฅ์ํ๊ธฐ ์ํด ์ธ๋ฑ์ค, ํํฐ์ ๋ ๋ฑ์ ๋ฐฉ๋ฒ์ ๊ณ ๋ คํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์, ROLLUP๊ณผ CUBE๋ ๊ทธ๋ฃน๋ณ ์๊ณ์ ์ ์ฒด ํฉ๊ณ๋ฅผ ๊ณ์ฐํ๋ ์ ์ฉํ ๊ธฐ๋ฅ์ด์ง๋ง, ์ฌ์ฉ ์ ์ฐจ์ด์ ๊ณผ ๊ฒฐ๊ณผ์ ํฌ๊ธฐ, ์ ํ์ ์ธ ์ฌ์ฉ, ๊ฒฐ๊ณผ ์ดํด ๋ฐ ์ฑ๋ฅ ๊ณ ๋ ค ๋ฑ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ํ์ ํ๊ณ ๋ค์ํ ์ฐจ์์ ์ง๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
๋๊ธ