美文网首页
第十二章 SQL聚合函数 VARIANCE, VAR_SAMP,

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

作者: Cache技术分享 | 来源:发表于2022-01-03 23:06 被阅读0次

第十二章 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 PerAgeVar
     FROM Sample.Employee
image.png

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

SELECT VAR_POP(Age) AS AgePopVar,VAR_POP(DISTINCT Age) AS PerAgePopVar
     FROM Sample.Employee
image.png

相关文章

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

    第十二章 SQL聚合函数 VARIANCE, VAR_SAMP, VAR_POP 返回数据集统计方差的聚合函数。 ...

  • 04 - 聚合与排序

    聚合函数 聚合函数 通过 SQL 对数据进行某种操作或计算时需要使用函数。用于汇总的函数称为聚合函数或者聚集函数聚...

  • SQL之GROUP BY & HAVING

    聚合函数 From CSDN 叶子 一、Sql Server 中有哪些聚合函数? 提到聚合函数大家一定会首先想到最...

  • SQL聚合函数

    1 SQL中的聚合函数 2.GROUP BY语句   GROUP BY语句用来与聚合函数(aggregate fu...

  • SQL内置函数使用手册

    SQL中有很多特别棒的内置函数。本文SQL内置函数手册中总结了SQL中常用的内置函数,包含通用聚合函数、安全检测函...

  • 第九章 SQL聚合函数 MIN

    第九章 SQL聚合函数 MIN 返回指定列中的最小数据值的聚合函数。 大纲 参数 ALL - 可选-将聚合函数应用...

  • SQL聚合函数

    count(*)总数 max最大值 min最小值 sum求和 avg平均值(默认4位小数) round四舍五入

  • sql 聚合函数

    emp 表,有14条记录,其中 deptno 有重复字段,comm 字段有的为 null: emp: enames...

  • SQL 聚合函数

    聚合函数用于汇总表的数据,比如求和、计数、求某列的平均值等等。SQL 中一共包含了 5 个聚合函数,这些聚合函数与...

  • 第八章 SQL聚合函数 MAX

    第八章 SQL聚合函数 MAX 返回指定列中最大数据值的聚合函数。 大纲 参数 ALL - 可选-将聚合函数应用于...

网友评论

      本文标题:第十二章 SQL聚合函数 VARIANCE, VAR_SAMP,

      本文链接:https://www.haomeiwen.com/subject/xrbfcrtx.html