SQL/분석함수

[SQL]분석함수(analytic function)_집계함수와 분석함수 차이

한기리 2020. 9. 19. 20:11
728x90
320x100

분석함수(analytic function)

 

  • 분석함수파티션과 윈도우로 값을 집계하며, 데이터집합을 변경하지 않고 값을 집계한다.

 

집계함수 VS 분석함수

 

  • 집계함수는 분석함수와 달리 행 그룹으로 값을 집계하며, 행 그룹 별로 단일 행을 반환하기 때문에 데이터집합이 변경된다.

 

집계함수

 

  • 아래 쿼리의 c1 열은 sal 합계, c2 열은 sal의 비율을 반환한다. 원본 값과 집계 값을 함께 분석하기 위해 emp 테이블을 2번 조회했다.

SELECT a.empno, a.sal, b.sal AS c1, a.sal/b.sal AS c2
 FROM emp a
      ,(SELECT deptno, SUM(sal) AS sal FROM emp GROUP BY deptno) b
WHERE a.deptno = 10
  AND b.deptno = a.deptno
ORDER BY 1;

 



분석함수


 

  • 분석함수를 사용하면 emp 테이블을 1번만 조회하면서 위 쿼리와 동일한 결과를 출력할 수 있다.

SELECT empno, sal
      , SUM(sal) OVER() AS c1
      , RATIO_TO_REPORT(sal) OVER() AS c2
 FROM emp
WHERE deptno = 10
ORDER BY 1;

 

728x90
320x100