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
'SQL > 분석함수' 카테고리의 다른 글
[SQL]분석함수(analytic function)_통계함수(STDDEV, VARIANCE) (0) | 2020.09.19 |
---|---|
[SQL]분석함수(analytic function)_기본함수(COUNT, MIN, MAX, SUM, AVG) (0) | 2020.09.19 |
[SQL]분석함수(analytic function)_분석함수에는 어떤 절이 사용가능할까? (0) | 2020.09.19 |
[SQL]분석함수(analytic function)_사용 시 주의사항 (0) | 2020.09.19 |
[SQL]분석함수(analytic function)_QUERY PARTITION절, ORDER BY절, WINDOWING절 (0) | 2020.09.19 |