728x90
320x100
분석함수 사용 시 주의 사항
-
RANGE 방식에 value_expr을 지정하면 ORDER BY 절에 숫자 값이나 날짜 값을 사용해야한다.
(문자 값을 사용하면 값을 계산할 수 없기 때문에 에러가 발생 한다)
SELECT job, sal
, SUM(sal) OVER(ORDER BY job RANGE 1 PRECEDING) AS c1
FROM emp
WHERE deptno = 30;
-
RANGE 방식에 value_expr을 지정하면 정렬 표현식을 1개만 사용할 수 있다.
(다수의 정렬 표현식을 사용하면 에러가 발생한다)
SELECT job, sal
, SUM(sal) OVER(ORDER BY sal, comm RANGE 1 PRECEDING) AS c1
FROM emp
WHERE deptno = 30;
-
RAGNE방식에 정렬 표현식이 날짜 값인 경우 value_expr에 숫자 값과 인터벌 값을 사용할 수 있다.
SELECT hiredate, sal
, SUM(sal) OVER(ORDER BY hiredate RANGE 90 PRECEDING) AS c1
, SUM(sal) OVER(ORDER BY hiredate RANGE INTERVAL '3' MONTH PRECEDING) AS c2
FROM emp
WHERE deptno = 30
ORDER BY 1;
-
분석함수는 SELECT 절과 ORDER BY 절에서만 사용할 수 있다.
SELECT deptno, ename, sal
FROM emp
WHERE SUM(sal) OVER(PARTITION BY deptno) >= 10000;
-
인라인 뷰를 사용하면 WHERE 절에서 분석 함수의 결과 값을 사용할 수 있다.
SELECT deptno, ename, sal, c1
FROM (SELECT a.*, SUM(a.sal) OVER(PARTITION BY a.deptno) AS c1 FROM emp a)
WHERE c1 >= 10000
ORDER BY 1, 2;
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)_QUERY PARTITION절, ORDER BY절, WINDOWING절 (0) | 2020.09.19 |
[SQL]분석함수(analytic function)_집계함수와 분석함수 차이 (0) | 2020.09.19 |