SQL 聚合函数

通过 SQL 聚合函数,可以确定数值集合的各种统计值。可以在查询和聚合表达式中使用这些函数,并在 QueryDef 对象的 SQL 属性中使用这些表达式,或者在基于 SQL 查询来创建 Recordset 对象时使用这些表达式。

Avg 函数

Count 函数

First、Last 函数

Min、Max 函数

StDev、StDevP 函数

Sum 函数

Var、VarP 函数

 

Avg 函数

计算在查询的指定字段中所包含的一组值的算术平均值。

语法

Avg(expr)

expr 占位符代表一个字符串表达式,它标识的字段包含被计算平均值的数据,或者代表使用该字段的数据执行计算的表达式。expr 中的操作数可包括表字段名、常量名或函数名(可以是固有的或用户自定义的函数,但不能是其他 SQL 聚合函数)。

说明

使用 Avg 计算的平均值是算术平均值(值的总和除以值的数目)。例如,可以使用 Avg 计算运费的平均值。

在计算中,Avg 函数不能包含任何 Null 字段。

您可以将 Avg 用于查询表达式中和 QueryDef 对象的 SQL 属性中,或者在基于 SQL 查询创建 Recordset 对象时使用。

 

Count 函数

计算查询所返回的记录数

语法

Count(expr)

expr 占位符代表字符串表达式,它标识的字段包含了要统计的数据,或者是使用该字段的数据执行计算的表达式。expr 中的操作数可包括表字段名或函数名(可以是固有的或者用户定义的函数,但不能是其他 SQL 聚合函数)。可以统计包括文本在内的任何类型数据。

说明

可以使用 Count 来统计基本查询的记录数。例如,可以通过 Count 来统计已发往特定国家/地区的订单数。

尽管 expr 能够对字段执行计算,但是 Count 仅仅计算出记录的数目。记录中所存储的数值类型与计算无关。

Count 函数不统计包含 Null 字段的记录,除非 expr 是星号 (*) 通配符。如果使用了星号通配符,Count 会计算出包括包含 Null 字段在内的所有记录的数目。使用 Count(*) 方式比使用 Count([Column Name]方式快很多。不要用单引号 (' ') 将星号括起来。下面的示例计算 Orders 表中的记录数目。

SELECT Count(*)

AS TotalOrders FROM Orders;

如果 expr 标识多个字段,那么 Count 函数仅统计至少有一个字段为非Null 值的记录。如果所有指定字段均为 Null 值,那么该记录不被统计在内。可以使用 & 号分隔字段名。下面的示例显示了如何将计算限于那些 ShippedDate 或 Freight 为非 Null 值的记录:

SELECT

Count('ShippedDate & Freight')

AS [Not Null] FROM Orders;

可以在查询表达式中使用 Count。也可以将该表达式用于 QueryDef对象的 SQL 属性中,或者在基于 SQL 查询创建 Recordset 对象时使用该表达式。

 

First、Last 函数

返回在查询所返回的结果集中的第一个或者最后一个记录的字段值。

语法

First(expr)

Last(expr)

expr 占位符代表一个字符串表达式,它标识了包含您要使用的数据的字段,或者是使用该字段中的数据执行计算的表达式。expr 中的操作数可以包括表字段、常量或函数(可以是固有的或者用户自定义的函数,但不能是其他 SQL 聚合函数)的名称。

说明

First 和 Last 与 DAO Recordset 对象的MoveFirst 和 MoveLast 方法相似。它们只是分别返回查询所返回结果集中第一个或最后一个记录中指定字段的值。因为记录通常以非特定顺序返回(除非查询中包含了 ORDER BY 子句),所以这些函数返回的记录是任意的。

 

Min、Max 函数

返回包含在查询的指定字段内的一组值中的最小和最大值。

语法

Min(expr)

Max(expr)

expr 占位符代表一个字符串表达式,它标识了包含要计算的数据的字段,或者是使用该字段中的数据执行计算的表达式。expr 中的操作数可包括表字段、常量或函数(可以是固有的或用户自定义的函数,但不能是其他 SQL 聚合函数)的名称。

说明

通过 Min 和 Max,可以基于指定的聚合(或分组)来确定字段中的最小和最大值。例如,可以通过这些函数来返回最低和最高的运费。如果没有指定聚合函数,将使用整个表。

可以将 Min 和 Max 用在查询表达式中和 QueryDef 对象的 SQL 属性中,或者在基于 SQL 查询创建 Recordset 对象时使用这些表达式。

 

 

StDev、StDevP 函数

返回以包含在查询的指定字段内的一组值作为总体样本或总体样本抽样的标准偏差的估计值。

语法

StDev(expr)

StDevP(expr)

expr 占位符代表字符串表达式,它标识了包含您希望计算的数据的字段,或者是使用该字段中的数据执行计算的表达式。expr 中的操作数可包括表字段、常量或函数(可以是固有的或者用户自定义的函数,但不能是其他 SQL 聚合函数)的名称。

说明

StDevP 函数对总体样本进行计算,StDev 函数对总体样本抽样进行计算。

如果基础查询包含少于两个的记录(或者没有记录,对于 StDevP 函数),那么,这些函数将返回 Null 值(表示无法计算标准偏差)。

您可以在查询表达式中使用 StDev 和 StDevP 函数。也可以将该表达式用于 QueryDef 对象的 SQL 属性,或者在基于 SQL 查询来创建Recordset 对象时使用它们。

 

Sum 函数

返回在查询的指定字段中所包含的一组值的总和。

语法

Sum(expr)

expr 占位符代表字符串表达式,它标识了包含要添加的数字数据的字段,或者是使用该字段中的数据执行计算的表达式。expr 中的操作数可包括表字段、常量或函数(可以是固有的或者用户自定义的函数,但不能是其他 SQL 聚合函数)的名称。

说明

Sum 函数计算字段值的总和。例如,可以使用 Sum 函数来确定运货的总费用。

Sum 函数将忽略包含 Null 字段的记录。下面的示例展示了如何计算 UnitPrice 和 Quantity 字段的产品总和:

SELECT

Sum(UnitPrice * Quantity)

AS [Total Revenue] FROM [Order Details];

可以在查询表达式中使用 Sum 函数。可以将该表达式用于 QueryDef对象的 SQL 属性中,或者在基于 SQL 查询来创建 Recordset 对象时使用该表达式。

 

Var、VarP 函数

返回以包含在查询的指定字段内的一组值为总体样本或总体样本抽样的方差的估计值。

语法

Var(expr)

VarP(expr)

expr 占位符代表字符串表达式,它标识了包含您要计算的数字数据的字段,或者是使用该字段中的数据执行计算的表达式。expr 中的运算符可以包括表字段、常量或者函数(可以是固有常量,也可以是用户自定义的函数,但不能是其他 SQL 聚合函数)的名称。

说明

VarP 函数计算总体样本,Var 函数计算总体样本抽样。

如果基础查询中包含了两个以下个记录,那么 Var 和 VarP 函数返回Null 值,这表示无法计算方差。

可以在查询表达式或 SQL 语句中使用 Var 和 VarP 函数。

 

posted @ 2010-12-01 10:36  Alex.Net  阅读(3146)  评论(0编辑  收藏  举报