본문 바로가기

오라클

오라클 ROLLUP,CUBE,GROUPINGSET 그룹화 함수

  --ROLLUP : 그룹화하고 그룹에 대한 부분합

  -- CUBE : ROLLUP 결과에 GROUP BY 절의 조건에 따라 모든 가능한 그룹핑 조합에 따른 결과 출력

  

  SELECT buseo,jikwi, SUM(basicpay) FROM insa

    GROUP BY buseo,jikwi;

    

  SELECT buseo,jikwi, SUM(basicpay) FROM insa

    GROUP BY ROLLUP (buseo,jikwi);  -- 직위의 null 값이 들어간부분이 합이다.

    

    SELECT buseo,jikwi, SUM(basicpay) FROM insa

    GROUP BY CUBE(buseo,jikwi);  --null null 총합 / 부서 null  직위의 합/ 직위 null  부서의 합/

    

  -- GROUPING SET : GROUP BY 절에서 그룹조건을 여러개 지정할 수 있는 함수

      -- 각 그룹 조건에 대해 별도로 GROUP BY한 결과를 UNION ALL 한 결과와 동일

      SELECT buseo, jikwi, null, TRUNC(AVG(basicpay)) FROM insa GROUP BY buseo, jikwi

      UNION ALL

      SELECT null, jikwi, city,TRUNC(AVG(basicpay)) FROM insa GROUP BY jikwi,city;

      

      SELECT buseo, jikwi,city,AVG(basicpay) FROM insa

          GROUP BY GROUPING SETS((buseo, jikwi), (jikwi, city));