문법 |
목적 |
CORR함수는 수치 쌍에 대한 상관 계수를 반환한다. 집계함수 또는 분석 함수로 이용할수 있다.
이 함수는 인수로써 임의의 수치형 또는 암묵적으로 수치형으로 변할수 있는 비수치형을 취한다.
오라클은 수치의 우선 순위가 가장 높은 인수를 판단하여, 나머지 인수를 암묵적으로 변환하여, 그 데이터형을 반환한다.
오라클 데이터 베이스는 expr1또는 expr2이 Null인 쌍을 제거한후에
(expr1,expr2)의 집합을 적용한다. 오라클은 다음과 같이 계산을 한다.
COVAR_POP(expr1, expr2) / (STDDEV_POP(expr1) * STDDEV_POP(expr2))
함수는 NUMBER형태를 반환한다. 만약 함수가 empty 집합에 적용하면, Null을 반영한다.
|
Note: CORR함수는 피어슨 상관 계수를 계산한다. 오라클은 비모수 또는 순위 상관을 지원하기 위하여
CORR_S(Spearman's rho 계수)와 CORR_K(Kendall's tau-b 계수)을 제공한다. |
예제 |
집계
예제
다음 예제는 oe.product_information테이블에서 weight_class의 제품의
표시 가격과 최소 가격의 상관계수를 계산한다.
SELECT weight_class, CORR(list_price, min_price)
FROM product_information
GROUP BY weight_class;
WEIGHT_CLASS CORR(LIST_PRICE,MIN_PRICE)
------------ --------------------------
1 .99914795
2 .999022941
3 .998484472
4 .999359909
5 .999536087
다음 예제는 sh.sales와 sh.times에서 1998년의 월 판매 수익과 월 판매 단위의
누적 상관 계수를 반환한다.
SELECT t.calendar_month_number,
CORR (SUM(s.amount_sold), SUM(s.quantity_sold))
OVER (ORDER BY t.calendar_month_number) as CUM_CORR
FROM sales s, times t
WHERE s.time_id = t.time_id AND calendar_year = 1998
GROUP BY t.calendar_month_number
ORDER BY t.calendar_month_number;
CALENDAR_MONTH_NUMBER CUM_CORR
--------------------- ----------
1
2 1
3 .994309382
4 .852040875
5 .846652204
6 .871250628
7 .910029803
8 .917556399
9 .920154356
10 .86720251
11 .844864765
12 .903542662
상관 함수는 하나이상의 행이 필요하다. 이전 예제에서 첫번째 행이 없는 이유.