본문 바로가기

[오라클 레퍼런스 함수] COVAR_POP - 숫자 쌍에 대한 모집단 공분산 반환

by ㅇㅍㅍ 2023. 8. 3.
[오라클 레퍼런스 함수] COVAR_POP - 숫자 쌍에 대한 모집단 공분산 반환
728x90

COVAR_POP

 

구문

COVAR_POP(expr1, expr2)
   [ OVER (analytic_clause) ]

 

참고:

구문, 의미, 그리고 제한 사항에 대한 정보는 "Analytic Functions"에 대한 내용을 참조하세요.

 

목적

COVAR_POP 함수는 숫자 쌍의 집합에 대한 모집단 공분산을 반환합니다. 이 함수는 집계 또는 분석 함수로 사용할 수 있습니다.

이 함수는 숫자 데이터 유형 또는 숫자 데이터 유형으로 암시적으로 변환될 수 있는 비숫자 데이터 유형을 인수로 사용합니다. Oracle은 가장 높은 숫자 우선순위를 가진 인수를 결정하고, 나머지 인수를 해당 데이터 유형으로 암시적으로 변환하며, 해당 데이터 유형을 반환합니다.

 

참고:

암시적 변환에 대한 자세한 정보는 표 2-8을 참조하세요. 숫자 우선순위에 대한 정보는 Numeric Precedence를 참조하십시오.

 

Oracle Database는 NULL 값이 있는 모든 (expr1, expr2) 쌍을 제거한 후 함수를 (expr1, expr2) 쌍의 집합에 적용합니다. 그런 다음 Oracle은 다음과 같은 계산을 수행합니다:

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

 

여기서 n은 expr1 또는 expr2 중 하나라도 null이 아닌 (expr1, expr2) 쌍의 개수를 의미합니다.

이 함수의 반환 값은 NUMBER 데이터 유형입니다. 함수가 빈 집합에 적용되면 null을 반환합니다.

 

참고:

About SQL Expressions에서 expr의 유효한 형식과 Aggregate Functions에 대한 정보를 확인하세요.

 

집계 예제

다음 예제는 샘플 테이블 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
ST_MAN          436092      545115

 

분석 예제

다음 예제는 샘플 스키마 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
. . .

 


출처: 오라클 레퍼런스

원문 링크: Oracle COVAR_POP 함수 문서

 

반응형

댓글