未找到结果

您的搜索操作未匹配到任何结果。

我们建议您尝试以下操作,以帮助您找到所需内容:

  • 检查关键词搜索的拼写。
  • 使用同义词代替键入的关键词,例如,尝试使用“应用”代替“软件”。
  • 请尝试下方显示的热门搜索之一。
  • 重新搜索。
热门问题

SQL 统计函数

可扩展的数据库中 SQL 统计函数

概述

每个 Oracle 数据库中都包含一系列可通过 SQL 访问的基本统计函数。其中包括描述性统计、假设检验、相关性分析、分布拟合测试、具 Chi-square 统计的交叉表以及方差分析 (ANOVA)。这些基本统计函数以 SQL 函数形式实现,充分利用了 Oracle 数据库的所有优势。SQL 统计函数处理 Oracle 表和视图,并利用所有数据库并行性、可扩展性、用户权限和安全方案。因此可以在 SQL 查询、BI 仪表盘和嵌入式实时应用中包含和公开 SQL 统计函数。可以通过各种方式使用 SQL 统计函数。例如,用户可以调用 Oracle 的 SQL 统计函数以获得其数据的平均值、最大值、最小值、中值、众数和标准差的信息;用户也可以使用 t-test、f-test 或 ANOVA 等假设检验统计来测定属性之间的关联度以及确定关系强度。SQL 聚合函数将根据各行组返回一个结果,而不是基于单个行,SQL 分析函数则基于一组行计算聚合值。

SQL 统计函数包括:

  • 描述性统计
  • 假设检验
  • 相关性分析(参数和非参数)
  • 排序函数
  • 具 Chi-square 统计的交叉表
  • 线性回归
  • ANOVA
  • 测试分布拟合
  • 窗口聚合函数
  • 统计聚合
  • LAG/LEAD 函数
  • 报告聚合函数

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.	
	

(请参见下面的 SQL 语言参考 — STATS_T_TEST_* 链接)

大多数统计软件供应商都对这些统计功能收取许可费。Oracle 已将这些统计功能包含在每个 Oracle 数据库中了。通过一个统一、一致、可扩展、安全的 Oracle 数据库平台,用户可以减少每年的许可费并执行等效的基本统计功能,同时保持大数据和分析的简单性。由于统计函数是原生 SQL 函数,因此统计结果可立即在 Oracle 系统中使用 — 为以自发和非预知方式利用您的结果提供了更多的机会。

此外,Oracle Advanced Analytics 的 Oracle R Enterprise 组件通过 R 统计编程语言公开了 SQL 统计函数,并允许 R 用户使用 R 统计函数(如 Summary),但接着将 R 函数下推到等效的 SQL 统计函数,可以避免数据移动,并显著提高数据库中性能。SQL Developer Oracle Data Miner 工作流 GUI 扩展还在 Explore、Graph、SQL Query 和 Transform 节点中利用了 SQL 统计函数。