COVAR_POP
構文
関連項目:
構文、セマンティクスおよび制限事項の詳細は、「分析ファンクション」を参照してください。
目的
COVAR_POP
は、数値の組の集合に対する母集団共分散を戻します。これは、集計ファンクションまたは分析ファンクションとして使用できます。
このファンクションは、引数として、任意の数値データ型、または暗黙的に数値データ型に変換可能な数値以外のデータ型を取ります。Oracleは、数値の優先順位が最も高い引数を判断し、残りの引数をそのデータ型に暗黙的に変換して、そのデータ型を戻します。
Oracle Databaseは、expr1
またはexpr2
がNULLであるすべての組を排除した後、このファンクションを(expr1
, expr2
)の組の集合に適用します。その後、Oracleは次の計算を行います。
(SUM(expr1 * expr2) - SUM(expr2) * SUM(expr1) / n) / n
ここで、n
は(expr1
, expr2
)の組の数です(ただし、expr1
およびexpr2
の両方がNULLではない場合です)。
ファンクションは、NUMBER
型の値を戻します。ファンクションが空の集合に適用されると、NULLを戻します。
集計の例
次の例では、サンプル表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 . . .