Oracle分析函数五——统计分析函数

简介:
Oracle 分析函数——统计分析函数
方差和标准差:
 
 
样本中各数据与样本平均数的差的平方和的平均数叫做样本方差;样本方差的算术平方根叫做样本标准差。样本方差和样本标准差都是衡量一个样本波动大小的量,样本方差或样本标准差越大,样本数据的波动就越大。
数学上一般用 E{[X-E(X)]^2} 来度量随机变量 X 与其均值 E(X) 即期望的偏离程度,称为 X 的方差。
方差是标准差的平方
方差和标准差。方差和标准差是测算离散趋势最重要、最常用的指标。方差是各变量值与其均值离差平方的平均数,它是测算数值型数据离散程度的最重要的方法。标准差为方差的平方根,用 S 表示。
 
StdDev 返回 expr 的样本标准偏差。它可用作聚集和分析函数。它与 stddev_samp 的不同之处在于,当计算的输入数据只有一行时, stddev 返回 0 ,而 stddev_samp 返回 null 。
 
Oracle 数据库 中,标准偏差计算结果与 variance 用作集聚函数计算结果的平方根相等。该函数参数可取任何数字类型或是任何能隐式转换成数字类型的非数字类型。
STDDEV
功能描述:计算当前行关于组的标准偏离。( Standard Deviation )
SAMPLE :
 
STDDEV_SAMP
功能描述: 该函数计算累积样本标准偏离,并返回总体变量的平方根,其返回值与 VAR_POP 函数的平方根相同。( Standard Deviation - Sample )
SAMPLE :
它与 stddev_samp 的不同之处在于,当计算的输入数据只有一行时, stddev 返回 0 ,而 stddev_samp 返回 null 。
SELECT
 department_id,
 first_name||' '||last_name employee_name,
 hire_date,
 salary,
 STDDEV_SAMP(salary) OVER (PARTITION BY department_id ORDER BY hire_date) AS cum_sdev
 FROM employees
 WHERE department_id in (20,30,60);
 
STDDEV 和 STDDEV_SAMP 的区别
SELECT
 first_name||' '||last_name employee_name,
 hire_date,
 salary,
 STDDEV(salary) OVER (ORDER BY hire_date) "StdDev",
 STDDEV_SAMP(salary) OVER (ORDER BY hire_date) AS cum_sdev
 FROM employees
 
VAR_POP
功能描述:( Variance Population )该函数返回非空集合的总体变量(忽略 null ), VAR_POP 进行如下计算:
(SUM(expr2) - SUM(expr)2 / COUNT(expr)) / COUNT(expr)
 
VAR_SAMP
功能描述:( Variance Sample )该函数返回非空集合的样本变量(忽略 null ), VAR_POP 进行如下计算:
(SUM(expr*expr)-SUM(expr)*SUM(expr)/COUNT(expr))/(COUNT(expr)-1)
SAMPLE :
 
VARIANCE
功能描述:该函数返回表达式的变量, Oracle 计算该变量如下:
如果表达式中行数为 1 ,则返回 0
如果表达式中行数大于 1 ,则返回 VAR_SAMP
SAMPLE :
 
SELECT
 department_id,
 first_name||' '||last_name employee_name,
 hire_date,
 salary,
 STDDEV(salary) OVER (PARTITION BY department_id ORDER BY hire_date) AS "STDDEV",
 STDDEV_SAMP(salary) OVER (PARTITION BY department_id ORDER BY hire_date) AS "STDDEV_SAMP",
 VAR_POP(salary) OVER (PARTITION BY department_id ORDER BY hire_date) AS "VAR_POP",
 VAR_SAMP(salary) OVER (PARTITION BY department_id ORDER BY hire_date) AS "VAR_SAMP",
 VARIANCE(salary) OVER (PARTITION BY department_id ORDER BY hire_date) AS "VARIANCE" 
 FROM employees
 
 
SAMPLE :
 
SELECT
 a.department_id,
 a.employee_id,
 b.employee_id manager_id,
 a.first_name||' '||a.last_name employee_name,
 b.first_name||' '||b.last_name manager_name,  
 a.hire_date,
 a.salary employee_salary,
 b.salary manager_salary,
 COVAR_POP(a.salary,b.salary) OVER (ORDER BY a.department_id,a.hire_date ) AS CUM_COVP,
 COVAR_SAMP(a.salary,b.salary) OVER (ORDER BY a.department_id,a.hire_date ) AS CUM_SAMP
 FROM employees a,employees b
 WHERE a.manager_id=b.employee_id(+)
 
 
 
CORR
功能描述:返回一对表达式的相关系数,它是如下的缩写:
COVAR_POP(expr1,expr2)/STDDEV_POP(expr1)*STDDEV_POP(expr2))
从统计上讲,相关性是变量之间关联的强度,变量之间的关联意味着在某种程度
上一个变量的值可由其它的值进行预测。通过返回一个 -1~1 之间的一个数 , 相关
系数给出了关联的强度, 0 表示不相关。
SELECT
 a.department_id,
 a.first_name||' '||a.last_name employee_name,
 b.first_name||' '||b.last_name manager_name,  
 a.hire_date,
 a.salary employee_salary,
 b.salary manager_salary,
 CORR(a.salary,b.salary) OVER (ORDER BY a.department_id,a.hire_date ) AS CORR
 FROM employees a,employees b
 WHERE a.manager_id=b.employee_id(+)






本文转自baoqiangwang51CTO博客,原文链接: http://blog.51cto.com/baoqiangwang/312686 ,如需转载请自行联系原作者
相关文章
|
3月前
|
SQL Oracle 关系型数据库
Oracle之日期计算相关函数
Oracle之日期计算相关函数
36 0
|
3月前
|
SQL Oracle 关系型数据库
Oracle之regexp系列函数详解
Oracle之regexp系列函数详解
66 1
|
2月前
|
存储 Java 数据库
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数(二)
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数
27 0
|
2月前
|
SQL Oracle 关系型数据库
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
56 0
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
|
13天前
|
SQL Oracle 关系型数据库
Oracle查询优化-聚集函数
【2月更文挑战第5天】【2月更文挑战第13篇】聚集函数
15 4
|
2月前
|
存储 SQL Java
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数(一)
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数
26 0
|
2月前
|
SQL Oracle 算法
Oracle函数
Oracle函数
94 1
|
3月前
|
SQL Oracle 关系型数据库
Oracle之有哪些日期计算函数?
Oracle之有哪些日期计算函数?
107 0
|
3月前
|
SQL Oracle 关系型数据库
Oracle之常用聚集函数详解
Oracle之常用聚集函数详解
29 1
|
3月前
|
SQL Oracle 关系型数据库
oracle中wm_conocat()函数的应用
oracle中wm_conocat()函数的应用
23 1