SQL統計関数

SQL統計関数

スケーラブルなデータベース内SQL統計関数

概要

Oracle Databaseには、SQL経由でアクセス可能な基本的な統計関数のコレクションがすべて含まれています。これには、記述統計、仮説テスト、相関分析、分布適合のテスト、カイ2乗統計によるクロス・タブ、および分散分析 (ANOVA) が含まれます。基本的な統計関数は、SQL関数として実装されているため、Oracle Databaseのすべての長所を活用します。SQL統計関数は、Oracleの表およびビュー上で機能し、データベースの並列処理、スケーラビリティ、ユーザー権限、セキュリティ・スキームをすべて活用します。したがって、SQL統計関数は、SQLクエリやBIダッシュボードに含めて公開することができます。また、リアルタイム・アプリケーションに組み込むことも可能です。 SQL統計関数は、様々な方法で使用できます。例えば、ユーザーはOracleのSQL統計関数を呼び出して、データの平均、最大値、最小値、中央値、最頻値、標準偏差の情報を取得することができます。あるいは、t-test、f-test、ANOVAなどの仮説テスト統計を使用して属性間の相関関係を測定し、関係性の強さを測定することもできます。SQL集計関数は、単一の行ではなく行のグループに基づいて単一の結果行を返します。SQL分析関数は、行のグループに基づいて集計値を計算します。

SQL統計関数には次のものがあります。

STATS_T_TEST_INDEPUの例: 次の例では、男女間の平均販売額の差異の重要性を判断します。分布が大幅に異なる (プールされていない) 分散を持つことが分かっている場合:



SELECT SUBSTR(cust_income_level, 1, 22) income_level, 
    AVG(DECODE(cust_gender, 'M', amount_sold, null)) sold_to_men, 
    AVG(DECODE(cust_gender, 'F', amount_sold, null)) sold_to_women, 
    STATS_T_TEST_INDEPU(cust_gender, amount_sold, 'STATISTIC', 'F') t_observed, 
    STATS_T_TEST_INDEPU(cust_gender, amount_sold) two_sided_p_value 
  FROM sh.customers c, sh.sales s WHERE c.cust_id = s.cust_id 
  GROUP BY ROLLUP(cust_income_level) 
  ORDER BY income_level, sold_to_men, sold_to_women, t_observed; 

INCOME_LEVEL           SOLD_TO_MEN SOLD_TO_WOMEN T_OBSERVED TWO_SIDED_P_VALUE 
---------------------- ----------- ------------- ---------- ----------------- 
A: Below 30,000          105.28349    99.4281447 -2.0542592        .039964704 
B: 30,000 - 49,999       102.59651    109.829642 2.96922332        .002987742 
C: 50,000 - 69,999      105.627588    110.127931  2.3496854        .018792277 
D: 70,000 - 89,999      106.630299    110.47287  2.26839281        .023307831
E: 90,000 - 109,999     103.396741    101.610416 -1.2603509        .207545662 
F: 110,000 - 129,999     106.76476    105.981312 -.60580011        .544648553 
G: 130,000 - 149,999    108.877532    107.31377  -.85219781        .394107755 
H: 150,000 - 169,999    110.987258    107.152191 -1.9451486        .051762624 
I: 170,000 - 189,999    102.808238    107.43556  2.14966921        .031587875 
J: 190,000 - 249,999    108.040564    115.343356 2.54749867        .010854966 
K: 250,000 - 299,999    112.377993    108.196097 -1.4115514        .158091676 
L: 300,000 and above    120.970235    112.216342 -2.0726194        .038225611 
                        107.121845    113.80441  .689462437        .490595765 
                        106.663769    107.276386 1.07853782        .280794207 
14 rows selected. 

(STATS_T_TEST_*)のSQL言語リファレンスへのリンクを参照してください。

ほとんどの統計ソフトウェアベンダーは、これらの統計機能のライセンス料金を請求していますが、オラクルでは、すべてのOracle Databaseにこれらが含まれています。ユーザーは、単一で統合された、一貫性のある、スケーラブルでセキュアなOracle Databaseプラットフォームでビッグデータと分析をシンプルに保ちながら、年間ライセンス料を削減し、同等の基本統計機能を実行することができます。統計関数はネイティブSQL関数であるため、統計結果はオラクルのスタック全体ですぐに使用できます。これにより、結果を予想もしなかった方法で活用できる機会が大幅に増えます。

さらに、Oracle Advanced AnalyticsOracle R Enterpriseコンポーネントは、R統計プログラミング言語を通じてSQL統計関数を公開し、RユーザーがSummaryなどのR統計関数を使用できるようにします。その後、データ移動を回避し、データベース内のパフォーマンスを大幅に向上させるために、R関数を同等のSQL統計関数にプッシュダウンします。SQL DeveloperのOracle Data MinerワークフローGUI拡張機能では、探索、グラフ、SQL問合せおよび変換ノードのSQL統計関数も利用します。