DB/SQL

group by 관련함수

씩씩한 IT블로그 2022. 2. 15. 16:58
반응형

ROLLUP

- 계층별로 group by를 수행

- rollup 뒤에 컬럼이 두개이상오면, 순서에 따라 결과가 달라짐

- 예시

SELECT DEPTNO,JOB,sum(sal) 
FROM table 
GROUP BY ROLLUP(DEPTNO,JOB)

- 결과

부서속 직업별 합계와, 부서별 합계를 모두 알 수 있다.

 

GROUPING SET

- 조합별 group by 쌍을 확인한다.

- 예시

SELECT JOB,DEPTNO,count(*) 
FROM table 
GROUP BY GROUPING SETS(JOB,DEPTNO)

- 결과

 

CUBE

- 조합별, 소계 등 모든 경우의 group by 쌍을 확인한다.

- 코드예시

SELECT DEPARTMENT_ID,JOB_ID,SUM(SALARY) 
FROM table 
GROUP BY GROUPING CUBE(DEPARTMENT_ID,JOB_ID)

- 결과

 

GROUPING

- 소계, 합계 row인지 확인하기 위한 함수

- 소계, 합계인 경우 1, 그렇지않으면 0의 값을 가진다

- 코드예시

SELECT job, deptno, SUM(sal), GROUPING(job), GROUPING(DEPTNO)
FROM table
GROUP BY ROLLUP(JOB,DEPTNO)

- 결과

DEPTNO들의 합이면 GROUPING(deptno)=1, JOB들의 합이면 GROUPING(JOB)=1 이 된다

반응형