计算数值表达式或字段的算术平均值。
AVERAGE [ExpressionList] [Scope] [FOR lExpression1] [WHILElExpression2] [TO VarList | TO ARRAY ArrayName] [NOOPTIMIZE]
参数
- ExpressionList
- 指定求平均值的表达式。ExpressionList 可以是用逗号分隔的表字段或包含表字段的数值表达式。
- Scope
- 指定求平均值的记录或记录范围。只有在指定范围内的记录才参加求平均值运算。Scope 子句可以为 :ALL、NEXT nRecords、RECORD nRecordNumber 和 REST。默认的 Scope(范围)为所有记录。
包含 Scope 子句的命令仅处理活动工作区中的表。
- FOR lExpression1
- 指定只有满足逻辑条件 lExpression1 的记录才参与计算。这样可以筛选出不想要的记录。
如果 lExpression 是可优化的表达式,Rushmore 技术将优化 AVERAG FOR 查询。若要获得最佳性能,应在 FOR 子句中使用可优化的表达式。有关 Rushmore 可优化表达式的详细内容,请参阅 SET OPTIMIZE 和 用 Rushmore 查询优化数据访问速度。
- WHILE lExpression2
- 指定只要逻辑表达式 lExpression2 为“真”(.T.),记录就参与运算。直到遇到第一个使 lExpression2 计算得“假”(.F.) 为止。
- TO VarList
- 指定保存平均值结果的内存变量或数组元素的列表。
- TO ARRAY ArrayName
- 指定保存平均值结果的一维数组。一维数组可以在使用 AVERAGE 命令前创建。
如果指定数组不存在,Visula FoxPro 将自动创建该数组。如果数组存在,但大小不能包含所有结果,Visula FoxPro 将自动根据信息量增加数组大小。
- NOOPTIMIZE
- 取消 AVERAGE 命令的 Rushmore 优化。有关的详细内容,请参阅 SET OPTIMIZE 和 用 Rushmore 查询优化数据访问速度。
备注
除非包含可选的表达式列表,否则选定表的所有字段都将参与求平均值的运算。如果 SET TALK 为 ON,结果显示在屏幕上。如果 SET HEADINGS 为 ON,字段名或包括字段名的表达式将显示在结果的上面。
示例
CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE orders && 打开 order 表 CLEARAVERAGE
Order_Amt && 计算所有订单的平均值AVERAGE
Order_AmtTO
gnAvg && 保存平均值到内存变量 ? '平均订货数: ' ?? gnAvg && 再次显示平均值
评论