文章目录

  • 第十二章 SQL聚合函数 VARIANCE, VAR_SAMP, VAR_POP
  • 大纲
  • 参数
  • 描述
  • 当前事务期间所做的更改
  • 示例

第十二章 SQL聚合函数 VARIANCE, VAR_SAMP, VAR_POP

返回数据集统计方差的聚合函数。

大纲

VARIANCE([ALL | DISTINCT [BY(col-list)]] expression [%FOREACH(col-list)] [%AFTERHAVING])VAR_SAMP([ALL | DISTINCT [BY(col-list)]] expression [%FOREACH(col-list)] [%AFTERHAVING])VAR_POP([ALL | DISTINCT [BY(col-list)]] expression [%FOREACH(col-list)] [%AFTERHAVING])

参数

  • ALL - 可选-指定统计方差函数返回表达式中所有值的方差。
    如果没有指定关键字,这是默认值。
  • DISTINCT - 可选- DISTINCT子句,指定统计方差函数返回不同(唯一)表达式值的方差。
    DISTINCT可以指定BY(colo -list)子句,其中colo -list可以是单个字段,也可以是用逗号分隔的字段列表。
  • expression - 任何有效的表达式。
    通常是包含要分析方差的数据值的列的名称。
  • %FOREACH(col-list) - 可选-列名或以逗号分隔的列名列表。
  • %AFTERHAVING - 可选-应用在HAVING子句中的条件。

这些函数返回NUMERIC数据类型,除非表达式是数据类型DOUBLE
如果expressionDOUBLE,则返回DOUBLE

描述

这三个方差聚合函数在丢弃NULL值后返回表达式值的统计方差。
也就是说,从数据集的平均值变化的量,表示为一个正数。
返回值越大,值的数据集的变化就越大。
SQL还提供聚合函数来返回对应于每个方差函数的标准偏差。

在这种统计差异的推导过程中有一些细微的差异:

  • 方差:如果数据集中所有的值都有相同的值(无可变性),则返回0。
    如果数据集只包含一个值(没有可能的可变性),则返回0。
    如果数据集没有值,则返回NULL。

方差计算为:

(SUM(expression**2) * COUNT(expression)) - SUM(expression**2)
_____________________________________________________________
COUNT(expression) * (COUNT(expression) - 1)
  • VAR_SAMP:样本方差。
    如果数据集中的所有值都具有相同的值(无可变性),则返回0。
    如果数据集只包含一个值(没有可能的可变性),则返回NULL。
    如果数据集没有值,则返回NULL
    使用与方差相同的变量计算。
  • VAR_POP:总体方差。
    如果数据集中的所有值都具有相同的值(无可变性),则返回0。
    如果数据集只包含一个值(没有可能的可变性),则返回0。
    如果数据集没有值,则返回NULL

VAR_POP的计算是:

(SUM(expression**2) * COUNT(expression)) - (SUM(expression) **2)
_____________________________________________________________
(COUNT(expression) **2 )

这些方差聚合函数可以在引用表或视图的SELECT查询或子查询中使用。
它们可以在SELECT列表或HAVING子句中与普通字段值一起出现。

这些方差聚合函数不能在WHERE子句中使用。
它们不能在JOINON子句中使用,除非SELECT是子查询。

这些方差聚合函数返回数据类型NUMERIC的值,精度为36,刻度为17,除非表达式是数据类型DOUBLE,在这种情况下,函数返回数据类型DOUBLE

这些方差聚合函数通常应用于具有数值的字段或表达式。
它们将非数值值(包括空字符串("))计算为零(0)。

这些方差聚合函数忽略数据字段中的NULL值。
如果查询没有返回行,或者返回的所有行的数据字段值为NULL,则返回NULL

与所有聚合函数一样,统计方差函数可以采用一个可选的DISTINCT子句。
方差(DISTINCT col1)返回那些不同(唯一)的col1字段值的方差。
方差(DISTINCT BY(col2) col1)返回记录中col1字段值的方差,其中col2值是不同的(唯一的)。
但是请注意,不同的col2值可能包含一个单独的NULL值。

当前事务期间所做的更改

与所有聚合函数一样,方差函数总是返回数据的当前状态,包括未提交的更改,而不管当前事务的隔离级别如何。

示例

下面的示例使用方差返回 sample.employee 中雇员年龄的方差,以及由一个或多个雇员表示的不同年龄的方差:

SELECT VARIANCE(Age) AS AgeVar,VARIANCE(DISTINCT Age) AS PerAgeVarFROM Sample.Employee

下面的示例使用 VAR_POP 返回 sample.employee 中雇员年龄的总体差异,以及由一个或多个雇员表示的不同年龄的差异:

SELECT VAR_POP(Age) AS AgePopVar,VAR_POP(DISTINCT Age) AS PerAgePopVarFROM Sample.Employee

第十二章 SQL聚合函数 VARIANCE, VAR_SAMP, VAR_POP相关推荐

  1. 第五十二章 SQL函数 DEGREES

    文章目录 第五十二章 SQL函数 DEGREES 大纲 参数 描述 示例 第五十二章 SQL函数 DEGREES 将弧度转换为角度的数值函数. 大纲 DEGREES(numeric-expressio ...

  2. 第二十二章 SQL函数 CAST(一)

    文章目录 第二十二章 SQL函数 CAST(一) 大纲 参数 描述 转换数字 字符串类型转换 转换为DATE.TIME和TIMESTAMP 转换NULL和空字符串 转换日期 第二十二章 SQL函数 C ...

  3. 第六十二章 SQL函数 HOUR

    文章目录 第六十二章 SQL函数 HOUR 大纲 描述 示例 第六十二章 SQL函数 HOUR Time函数,它返回DateTime表达式的小时数. 大纲 {fn HOUR(time-expressi ...

  4. 第四章 SQL聚合函数 COUNT(二)

    文章目录 第四章 SQL聚合函数 COUNT(二) 权限 性能 未提交事务所做的更改 示例 第四章 SQL聚合函数 COUNT(二) 权限 要使用COUNT(*),必须对指定的表具有表级别的SELEC ...

  5. 第二十二章 SQL命令 CREATE TRIGGER(二)

    文章目录 第二十二章 SQL命令 CREATE TRIGGER(二) SQL触发器代码 ObjectScript触发代码 字段引用和伪字段引用 引用流属性 引用SQLComputed属性 标签 方法调 ...

  6. 第十二章 SQL谓词 %INSET

    第十二章 SQL谓词 %INSET 将一个值匹配到一组生成的值. 大纲 scalar-expression %INSET valueset [SIZE ((nn))] 参数 scalar-expres ...

  7. 第五十二章 SQL命令 INSERT(一)

    文章目录 第五十二章 SQL命令 INSERT(一) 大纲 参数 描述 INSERT OR UPDATE %Keyword字选项 表参数 赋值 值赋值语法 显示到逻辑数据的转换 %SerialObje ...

  8. 第六十二章 SQL命令 OPEN

    文章目录 第六十二章 SQL命令 OPEN 大纲 参数 描述 示例 第六十二章 SQL命令 OPEN 打开游标. 大纲 OPEN cursor-name 参数 cursor-name - 游标的名称, ...

  9. 第五章 SQL聚合函数 %DLIST

    文章目录 第五章 SQL聚合函数 %DLIST 大纲 参数 描述 %DLIST 和 %SelectMode %DLIST和ORDER BY 相关的聚合函数 示例 第五章 SQL聚合函数 %DLIST ...

最新文章

  1. 修改MD5加密 提高网站安全
  2. Eclipse导入Maven项目解决Build Path不能配置问题
  3. 基于FPGA的BP神经网络的verilog实现
  4. 嵌入式笔录(3)-电容,频率与幅度基础
  5. php curl hostname,php – 如何解决cURL错误(7):无法连接到主机?
  6. java 堆 是用_Java8元空间和堆使用
  7. java对mysql读写权限设置_Java学习笔记——MySQL开放3306接口与设置用户权限
  8. z-index无效注意事项
  9. 登录验证---添加验证码验证,Cookie保存功能
  10. matlab鲍威尔方法求函数,基于MATLAB的鲍威尔法求极值问题.doc
  11. layui date插件设置不能跨月查询
  12. B样条曲线的一些基本性质
  13. HDU——2647 Reward
  14. Appium连接手机
  15. iQOO探索悦行者深入阿尔山林海体验性能和操控激情
  16. Revit 二次开发标高修改
  17. 探索 Android 网络优化方法
  18. 欧悌甫戎篇(论虔诚)-柏拉图对话集
  19. python base
  20. MATLAB 串口通信的实现。。

热门文章

  1. 非大道理谈创业团队的鬼门关
  2. QT5系列教程二---基于qcustomplot的QT5 GUI串口收发绘图软件实现
  3. Reinforcement Learning 的核心基础概念及实现
  4. POI之图片导出到PPT简单实例
  5. 一切从FP(Functional Programming)开始
  6. hangfire mysql_Hangfire 后台日志 The underlying provider failed on Open 错误
  7. 用百度进行站内搜索源代码
  8. Opencv Sift和Surf特征实现图像无缝拼接生成全景图像
  9. 从粗放到精细,能量采集技术如何赋能农业智慧升级?
  10. java.net.UnknownHostException 请求地址出现异常问题