CUBE() ํจ์๋ ์ธ์๋ก ๋ฐ๋ ์ปฌ๋ผ์ผ๋ก ๋ง๋ค ์ ์๋ ๋ชจ๋ ์กฐํฉ์ผ๋ก ์ง๊ณํ์ฌ ์ถ์ถํ๋ ํจ์์ด๋ค.
์์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ผ๋ ค๋ฉด, ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ ์ ์๋ค.
SELECT B.DNAME
, SUM(A.SAL)
FROM EMP A
, DEPT B
WHERE A.DEPTNO = B.DEPTNO
GROUP BY CUBE(B.DNAME)
ORDER BY 1
;
์ผํ๋ณด๋ฉด ROLLUP() ํจ์์ ๋ค๋ฅผ ๊ฑฐ ์๋ ํจ์์ฒ๋ผ ๋ณด์ด์ง๋ง, CUBE() ํจ์๋ ๋ฐ๋ ์ธ์๊ฐ ๋ง์์ง์๋ก ์กฐํฉ์ด ๋ค์ํด์ ธ ์ถ๋ ฅํ๋ ๊ฒฐ๊ณผ๊ฐ ํจ์ฌ ๋ง์์ง๋ค.
SELECT B.DNAME
, A.JOB
, SUM(A.SAL)
FROM EMP A
, DEPT B
WHERE A.DEPTNO = B.DEPTNO
GROUP BY CUBE(B.DNAME, A.JOB)
ORDER BY 1,2
;
์์ ๊ฐ์ด ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๊ฒ ๋ ๊ฒฝ์ฐ, ์๋์ ๊ฐ์ ๊ฒฐ๊ณผ ๊ฐ์ ์ป์ ์ ์๋ค.
์ปฌ๋ผ A (A1, A2, A3) | ์ปฌ๋ผ B (B1, B2, B3) | ์ง๊ณ ํจ์(SUM(C)) |
A1 | B1 | A1๋ณ B1๋ณ C์ ์ดํฉ |
A1 | B2 | A1๋ณ B2๋ณ C์ ์ดํฉ |
A1 | B3 | A1๋ณ B3๋ณ C์ ์ดํฉ |
A1 | A1๋ณ C์ ์ดํฉ | |
A2 | B1 | A2๋ณ B1๋ณ C์ ์ดํฉ |
A2 | B2 | A2๋ณ B2๋ณ C์ ์ดํฉ |
A2 | B3 | A2๋ณ B3๋ณ C์ ์ดํฉ |
A2 | A2๋ณ C์ ์ดํฉ | |
A3 | B1 | A3๋ณ B1๋ณ C์ ์ดํฉ |
A3 | B2 | A3๋ณ B2๋ณ C์ ์ดํฉ |
A3 | B3 | A3๋ณ B3๋ณ C์ ์ดํฉ |
A3 | A3๋ณ C์ ์ดํฉ | |
C์ ์ดํฉ |
์ด๋ฅผ GROUPING SETS() ํจ์๋ก ํํํ๋ฉด ๋ ์ดํดํ๊ธฐ ์ฌ์์ง๋ค.
SELECT B.DNAME
, A.JOB
, SUM(A.SAL)
FROM EMP A
, DEPT B
WHERE A.DEPTNO = B.DEPTNO
GROUP BY GROUPING SETS((B.DNAME, A.JOB), B.DNAME, A.JOB, ())
ORDER BY 1,2
;
CUBE() ํจ์๋ ํ์ฅ GROUP ํจ์ ์ค์ ๊ฐ์ฅ ์ฌ์ฉ ๋น๋ ์๊ฐ ์ ์ ํจ์๋ผ๊ณ ์๊ณ ์๋ค. ์ธ์๋ฅผ ๋ง์ด ์ค ์๋ก ๋ฐ์ดํฐ๊ฐ ๋ปฅํ๊ธฐ ๋์ด ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ฐพ๋ ๊ฒ๋ ์ผ์ด ๋๋ ๋๋์ด๋ค. ์ฌ์ฉ ํ๊ฒฝ์ ๋ง๋ ํจ์๋ฅผ ์ ์ ํ ์ฌ์ฉํ๋ ๊ฒ์ด ์ค์ํ ๊ฒ ๊ฐ๋ค.
ํ์ฅ GROUP ํจ์๋ ํ์๋ ์๋์ง๋ง ์์๋๋ฉด ๊ต์ฅํ ์ ์ฉํ๊ฒ ์ธ ์ ์๋ ํจ์์ด๋ค. ๋จ์ํ ์ํ๋ ๊ฐ์ ์ ์ฝ๊ฒ ์ป์ ์ ์๋ค๋ ๊ฒ์ ๋ ๋์ ์ฑ๋ฅ์ ์ธ ์ธก๋ฉด์์๋ ๋ง์ ๋์์ ์ค๋ค. ๋น์ทํ ์ญํ ์ ํ๋ ROLLUP() ํจ์์ ์ฌ์ฉ ์ ๋ฌด ๋น๊ต๋ฅผ ์ค๋ผํด ์ฑ๋ฅ ๋ถ์ํ๋ฅผ ํตํด ๋ณด๋ฉด ํ์คํ ์ ์ ์๋ค.
์ฌ๊ธฐ์ ์ค์ํ๊ฒ ๋ณผ ๋ถ๋ถ์ Elapsed Time๊ณผ Query ์ปฌ๋ผ์ด๋ค. Elapsed Time์ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋๋ฐ ๊ฑธ๋ฆฐ ์๊ฐ์ด๊ณ , Query๋ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ธฐ๊น์ง ์์คํ
์ด ๋๋ฆฐ ์ฟผ๋ฆฌ์ ํ์์ด๋ค. ๋ฐ์ดํฐ๊ฐ ์ ๊ณ ERD ๊ท๋ชจ๊ฐ ์ ์ ํ๊ฒฝ์์ ํ
์คํธํด๋ณด์๋๋ฐ๋ ๋ถ๊ตฌํ๊ณ ํ ๋์ ๋ด๋ ์ฐจ์ด๊ฐ ๋๋ ๊ฒ์ด ๋ณด์ธ๋ค. ์ด๋ฐ ์ฐจ์ด๋ ์ค๋ฌด์์ ๋ฐฉ๋ํ ๊ท๋ชจ์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฌ๋ค๋ฉด ๋ ๋๋ ทํ๊ฒ ๋ณด์ผ ๊ฒ์ด๋ค.
๋ณธ์ธ์ด ์๊ท๋ชจ ํ๋ก์ ํธ๋ง ์งํํ๊ณ ๋น์ฅ ๊ธํ๊ฒ ์ฟผ๋ฆฌ๋ฅผ ์ง์ผํ๋ ์ํฉ์ด๋ผ๋ฉด ์ด๋ฐ ์ฑ๋ฅํ๊น์ง ๋น๊ต๋ถ์ํ๋ฉด์ ์ฟผ๋ฆฌ๋ฅผ ์งค ํ์๋ ์์ ๊ฒ์ด๋ค(๊ฒฐ๊ณผ๊ฐ ์๋์ค๋ ๊ฒ์ด ๊ฐ์ฅ ์ค์ํ๋๊น). ํ์ง๋ง ๋ง๋ํ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ํฐ ๊ท๋ชจ์ ํ๋ก์ ํธ์์ ์ฟผ๋ฆฌ๋ฅผ ์ง ๋ค๊ฑฐ๋, ํ๋์ ์
๋ฌด๋ฅผ ๋งก๊ฒ ๋์๋ค๋ฉด ์ด๋ฐ ์ฑ๋ฅ ๋ถ์์ ํตํด ์ต๋ํ ๋ฉ๋ชจ๋ฆฌ ์๋ชจ๋ฅผ ์ ๊ฒํ๋ ์ฝ๋ ๋ฐฉ์์ ๊ณ ๋ฏผํด ๋ณผ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํ๋ค.
'๊ฐ๋ฐ์ผ๊ธฐ ๐ป' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DBMS] SqlDeveloper์์ DB ๋น๊ตํ๊ธฐ (0) | 2023.12.21 |
---|---|
[Oracle] ํ์ฅ GROUP ํจ์ - GROUPPING() (2) | 2023.12.06 |
[Oracle] ํ์ฅ GROUP ํจ์ - GROUPING SETS() (2) | 2023.12.06 |
[Oracle] ํ์ฅ GROUP ํจ์ - ROLLUP() (0) | 2023.12.05 |
[Eclipse] Dynamic Web Module version ํ์ธ/์์ ํ๊ธฐ (0) | 2023.11.30 |