VAR (Transact-SQL)

返回指定表达式中所有值的方差。 后面可以跟随 OVER 子句

适用范围:SQL Server(SQL Server 2008 至当前版本),Windows Azure SQL Database(初始版本至当前版本)。

主题链接图标 Transact-SQL 语法约定

语法

VAR ( [ ALL | DISTINCT ] expression ) 
   OVER ( [ partition_by_clause ] order_by_clause )

参数

  • ALL
    对所有值应用该函数。 ALL 为默认值。

  • DISTINCT
    指定考虑每一个唯一值。

  • expression
    是精确数值或近似数值数据类型类别(bit 数据类型除外)的表达式。 不允许使用聚合函数和子查询。

  • OVER ( [ partition_by_clause ] order_by_clause**)**
    partition_by_clause 将由 FROM 子句生成的结果集划分为要应用函数的分区。 如果未指定,则此函数将查询结果集的所有行视为单个组。 order_by_clause 确定执行操作的逻辑顺序。 order_by_clause 是必需的。 有关详细信息,请参阅 OVER 子句 (Transact-SQL)

返回类型

float

注释

如果 VAR 用于 SELECT 语句中的所有项目,则结果集中的每个值都包含在计算中。 VAR 只可用于数字列。 Null 值会被忽略。

VAR 不与 OVER 和 ORDER BY 子句配合使用时为确定性函数。 与 OVER 和 ORDER BY 子句一同指定时,它具有不确定性。 有关详细信息,请参阅确定性函数和不确定性函数

示例

以下示例将返回 AdventureWorks2012 数据库的 SalesPerson 表中所有奖金值的方差。

SELECT VAR(Bonus)
FROM Sales.SalesPerson;
GO

请参阅

参考

聚合函数 (Transact-SQL)

OVER 子句 (Transact-SQL)