문법 |
목적 |
COVAR_POP함수는 number조합의 세트의 모집단 공분산을 반환한다. 집계함수 또는 분석함수로
이용할수 있다.
이 함수는 임의의 수치형 데이터 형 또는 암묵적으로 수치형으로 변환할수 있는 비수치형 데이터를
취한다. 오라클은 수치 순위가 가장 높은 인수를 판단하여, 나머지 인수를 그 인수의 데이터형으로 암묵적으로 변환한다.
오라클 데이터 베이스는 expr1 또는 expr2가 Null인 모든 쌍을 제외한후에
(expr1,expr2) 쌍의 세트에 적용한다. 오라클은 다음과 같이 계산한다.
(SUM(expr1 * expr2) - SUM(expr2) * SUM(expr1) / n) / n
where n은 (expr1,expr2)쌍의 수. expr1
과 expr2가 모두 Null이 아닌 쌍.
함수는 Number 타입의 값을 반환한다. 만약 함수가 empty 세트를 적용하면, Null을
반환한다.
예제 |
집계
예제
다음 예제는 sh.sales테이블에서 각 해에 대한 amount_sold과
quantity_sold의 모집단,표본 공분산을 계산한다.
SELECT t.calendar_month_number, COVAR_POP(s.amount_sold, s.quantity_sold) AS covar_pop, COVAR_SAMP(s.amount_sold, s.quantity_sold) AS covar_samp FROM sales s, times t WHERE s.time_id = t.time_id AND t.calendar_year = 1998 GROUP BY t.calendar_month_number; CALENDAR_MONTH_NUMBER COVAR_POP COVAR_SAMP --------------------- ---------- ---------- 1 5437.68586 5437.88704 2 5923.72544 5923.99139 3 6040.11777 6040.38623 4 5946.67897 5946.92754 5 5986.22483 5986.4463 6 5726.79371 5727.05703 7 5491.65269 5491.9239 8 5672.40362 5672.66882 9 5741.53626 5741.80025 10 5050.5683 5050.78195 11 5256.50553 5256.69145 12 5411.2053 5411.37709
다음 예제는 schema oe에서 list_price와 Min_price의 누적 모집단 분산과 누적
표본 분산을 계산한다.
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 . . .