转至元数据结尾
转至元数据起始

概述

集合函数也称聚合函数,是指对一系列值进行计算。典型的系列值是数据集多条记录的同一字段,因此聚合函数的典型参数值就是数据集字段。常用的集合函数如下:

表1 常用集合函数表

函数

说明

语法示例

AggregateIf

如果布尔表达式符合给定条件,则计算指定表达式的集合函数值。

AggregateIf(<条件表达式>, <集合函数>, <集合函数参数>)=AggregateIf(Fields!Discontinued.Value = True, Sum, Fields!InStock.Value)

AggregateIf(with scope)

在指定作用域内,如果布尔表达式符合给定条件,则计算指定表达式的集合函数值。

AggregateIf(<条件表达式>, <集合函数>, <集合函数参数>, <作用域>)=AggregateIf(Fields!Discontinued.Value = True, Sum, Fields!InStock.Value, "Category")

Avg

返回指定表达式的所有非空值的平均值。如:=Avg( Fields!销售额.Value)。

Avg(<数值表达式>)=Avg(Fields!LifeExpentancy.Value)

Avg(with scope)

在指定作用域内,计算表达式中所有非空数值的平均数。

Avg(<数值表达式>, <作用域>)=Avg(Fields!LifeExpentancy.Value, "GroupByCountry")

Count

计算指定表达式中所有非空数值的总个数。

Count(<数值表达式>)=Count(Fields!EmployeeID.Value)

Count(with scope)

在指定作用域内,计算指定表达式中所有非空数值的总个数。

Count(<数值表达式>, <作用域>)=Count(Fields!EmployeeID.Value, "Title")

CountDistinct

返回指定表达式的所有不同值的计数。

CountDistinct(<数值表达式>)=CountDistinct(Fields!OrderID.Value)

CountDistinct(with scope)

在指定作用域内,计算指定表达式中所有非重复值的个数。

CountDistinct(<数值表达式>, <作用域>)=CountDistinct(Fields!OrderID.Value, "GroupByCategory")

CountRows

计算记录行数。

CountRows()=CountRows()

CountRows(with scope)

计算指定范围内的记录行数。

CountRows(<作用域>)=CountRows("Title")

CumulativeTotal

计算当前页面级别的数据统计结果,可能是合计、平均值、最大或最小值的累计。

CumulativeTotal(<数值表达式>, <聚合函数>)

=CumulativeTotal(Fields!OrderID.Value, Count)

例如:=CumulativeTotal( Fields!Qty.Value , Sum) 返回数据集字段Qty的当前累计,其中的“Sum”可以为“AVG”以求累计平均值。此函数多用于会计类报表的滚动汇总。

DistinctSum

当一个表达式的数值不重复时,计算另一表达式的总和。

DistinctSum(<非重复数值表达式>, <待汇总数值表达式>)=DistinctSum(Fields!OrderID.Value, Fields!OrderFreight.Value)

DistinctSum(with scope)

在指定作用域内,当一个表达式的数值不重复时,计算另一表达式的总和。

DistinctSum(<非重复数值表达式>, <待汇总数值表达式>, <作用域>)=DistinctSum(Fields!OrderID.Value, Fields!OrderFreight.Value, "Order")

First

返回指定表达式的第一个值。通常是数据集第一条记录的指定字段值。

First(<数值表达式>)=First(Fields!ProductNumber.Value)

First(with scope)

在指定作用域内,返回指定表达式的第一个值。

First(<数值表达式>, <作用域>)=First(Fields!ProductNumber.Value, "Category")

Last

返回指定表达式的最后一个值。

Last(<数值表达式>)=Last(Fields!ProductNumber.Value)

Last(with scope)

在指定作用域内,返回指定表达式的最后一个值。

Last(<数值表达式>, <作用域>)=Last(Fields!ProductNumber.Value, "Category")

Max

返回指定表达式的所有非空值中的最大值。

Max(<数值表达式>)=Max(Fields!OrderTotal.Value)

Max(with scope)

在指定作用域内,返回指定表达式中所有非空数值的最大值。

Max(<数值表达式>, <作用域>)=Max(Fields!OrderTotal.Value, "Year")

Median

返回指定表达式中所有数值的中位数。

Median(<数值表达式>)=Median(Fields!OrderTotal.Value)

Median(with scope)

在指定作用域内,返回指定表达式中所有数值的中位数。

Median(<数值表达式>, <作用域>)=Median(Fields!OrderTotal.Value, "Year")

Min

返回指定表达式的所有非空值中的最小值。

Min(<数值表达式>)=Min(Fields!OrderTotal.Value)

Min(with scope)

在指定作用域内,返回指定表达式中所有非空数值的最小值。

Min(<数值表达式>, <作用域>)=Min(Fields!OrderTotal.Value, "Year")

Mode

返回指定表达式中重复次数最多的数值。

Mode(<数值表达式>)=Mode(Fields!OrderTotal.Value)

Mode(with scope)

在指定作用域内,返回指定表达式中重复次数最多的数值。

Mode(<数值表达式>, <作用域>)=Mode(Fields!OrderTotal.Value, "Year")

RunningValue

返回指定表达式的累进计算值。

函数原型为:RunningValue(<Expression>, <Aggregate>, <Scope>)。

其中,<Expression>为被计算的表达式,<Aggregate>为累进计算方法,比如:SUM表示合计,AVG表示平均。例如:=RunningValue(Fields!库存量.Value, SUM) 返回从数据集首行至当前行的库存量累计。

RunningValue(<数值表达式>, <集合函数>)=RunningValue(Fields!Price.Value, Sum)

RunningValue(with scope)

在指定作用域内,返回指定表达式的累进计算值。

RunningValue(<数值表达式>, <集合函数>, <作用域>)=RunningValue(Fields!Price.Value, Sum, "Nwind")

StDev

返回指定表达式的所有非空值的标准偏差。

StDev(<数值表达式>)=StDev(Fields!LineTotal.Value)

StDev(with scope)

在指定作用域内,计算指定表达式所有非空数值的标准差。

StDev(<数值表达式>, <作用域>)=StDev(Fields!LineTotal.Value, "Nwind")

StDevP

返回指定表达式的所有非空值的总体标准偏差。

StDevP(<数值表达式>)=StDevP(Fields!LineTotal.Value)

StDevP(with scope)

在指定作用域内,计算指定表达式所有非空数值的总体标准差。

StDevP(<数值表达式>, <作用域>)=StDevP(Fields!LineTotal.Value, "Order")

Sum

返回指定表达式的值的总和。

Sum(<数值表达式>)=Sum(Fields!Price.Value)

Sum(with scope)

在指定作用域内,计算指定表达式所有数值的总和。

Sum(<数值表达式>, <作用域>)=Sum(Fields!Price.Value, "Category")

Var

返回指定表达式的所有非空值的方差(标准差的平方)。

Var(<数值表达式>)=Var(Fields!LineTotal.Value)

Var(with scope)

在指定作用域内,计算指定表达式所有非空数值的方差(标准差的平方)。

Var(<数值表达式>, <作用域>)=Var(Fields!LineTotal.Value, "Order")

VarP

返回指定表达式的所有非空值的总体方差。

VarP(<数值表达式>)=VarP(Fields!LineTotal.Value)

VarP(with scope)

在指定作用域内,计算指定表达式所有非空数值的总体方差(总体标准差的平方)。

VarP(<数值表达式>, <作用域>)=VarP(Fields!LineTotal.Value, "Order")

示例

当我们为文本框绑定一个字段时,系统将自动进行集合运算。对数值类型的字段进行Sum运算,对非数值类型的字段进行Count运算。

图1 集合运算

我们也可以在编写表达式时自定义添加集合函数进行运算,以得到需要的结果。比如,用Max函数获取订单金额的最大值。

图2 自定义集合函数表达式


注意

每个集合函数都可以使用 Scope 参数来定义执行集合函数的范围,有关数据范围的详细介绍请参见函数计算范围




  • 无标签