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