All thing of the world!

Oracle COVAR_POP 설명 : 오라클 함수 본문

IT/Oracle DBMS

Oracle COVAR_POP 설명 : 오라클 함수

WorldSeeker 2021. 3. 31. 09:16

1. 함수의 목적 
   
    Oracle COVAR_POP은 두 입력값의 모집단 공분산을 구한다. 집계 또는 분석 함수로 사용된다.

2. 샘플을 통한 개념 퀵뷰

다음 예는 hr.employees를 사용하여 고용 시간 (SYSDATE - hire_date) 및 급여에 대한 모집단 공분산 및 표본 공분산을 계산한다.

SELECT job_id,
COVAR_POP(SYSDATE-hire_date, salary) AS covar_pop,
COVAR_SAMP(SYSDATE-hire_date, salary) AS covar_samp
FROM employees
WHERE department_id in (50, 80)
GROUP BY job_id
ORDER BY job_id, covar_pop, covar_samp;

JOB_ID COVAR_POP COVAR_SAMP
---------- ----------- -----------
SA_MAN   660700         825875
SA_REP     579988.466 600702.34
SH_CLERK 212432.5     223613.158
ST_CLERK 176577.25   185870.789


3. 사용방법  


4. 함수 PARAMETER 설명

[expr1][expr2]
 두 변수를 입력하는 곳으로 숫자형 데이터를 입력값을 가지며, 문자라도 숫자로 변경이 가능한 문자는 내부적으로 변환하여 입력된다.
첫번째의 데이터타입이 다르다면 가장 높은 우선 순위의 데이터타입으로 내부적으로 변환하고, 리턴 데이터 타입도 역시 내부적으로 변환한 데이터 타입에 맞게 반환한다
.


expr1 또는 expr2가 null 인 모든 쌍을 제거한 후 (expr1, expr2) 쌍의 집합에 함수를 적용한다. 그런 다음 Oracle은 다음과 같은 계산을 수행한다.

(SUM(expr1 * expr2) - SUM(expr2) * SUM(expr1) / n) / n

여기서 n은 expr1도 expr2도 null이 아닌 (expr1, expr2) 쌍의 갯수이다.

숫자타입으로 결과를 반환한다.


[over]
over를 사용하여 다양한 뷰로 분석/집계가 가능하다.

5. 다양한 샘플표현

example 1) 샘플 스키마 oe에 있는 제품의 정가 및 최소 가격의 누적 표본 공분산을 계산한다.

SELECT product_id, supplier_id,
COVAR_POP(list_price, min_price) OVER (ORDER BY product_id, supplier_id) AS CUM_COVP,
COVAR_SAMP(list_price, min_price) OVER (ORDER BY product_id, supplier_id) AS CUM_COVS
FROM product_information p
WHERE category_id = 29
ORDER BY product_id, supplier_id;

PRODUCT_ID SUPPLIER_ID CUM_COVP CUM_COVS
---------- ----------- ---------- ----------
1774 103088 0
1775 103087 1473.25 2946.5
1794 103096 1702.77778 2554.16667
1825 103093 1926.25 2568.33333
2004 103086 1591.4 1989.25
2005 103086 1512.5 1815
2416 103088 1475.97959 1721.97619
. . .

 

 

Comments