average 命令

Expression Expression lExpression

average 命令
計算數值表達式或欄位的算術平均值。

語法

AVERAGE [ExpressionList]
[Scope] [FOR lExpression1] [WHILE lExpression2]
[TO MemVarList | TO ARRAY ArrayName]
[NOOPTIMIZE]

參數

ExpressionList

指定求平均值的表達式。ExpressionList 可以是用逗號分隔的表欄位或包含表欄位的數值表達式。

Scope

指定求平均值的記錄或記錄範圍。只有在指定範圍內的記錄才參加求平均值運算。

Scope 子句可以為 :ALL、NEXT nRecords、RECORD nRecordNumber 和 REST。默認的 Scope(範圍)為所有記錄。
有關 Scope 子句的詳細內容,請參閱 Scope 子句 主題或《開發指南》的第二章“語言概述”。包含 Scope 子句的命令僅處理活動工作區中的表。

FOR lExpression1

指定只有滿足邏輯條件 lExpression1 的記錄才參與計算。這樣可以篩選出不想要的記錄。
如果 lExpression 是可最佳化的表達式,rushmore 技術將最佳化 AVERAG FOR 查詢。若要獲得最佳性能,應在 FOR 子句中使用可最佳化的表達式。有關 Rushmore 可最佳化表達式的詳細內容,請參閱 SET OPTIMIZE和掌握 Rushmore 技術,以及《開發指南》的第十七章“最佳化程式”。

WHILE lExpression2

指定只要邏輯表達式 lExpression2 為“真”(.T.),記錄就參與運算。直到遇到第一個使 lExpression2 計算得“假”(.F.) 為止。

TO MemVarList

指定保存平均值結果的記憶體變數或數組元素的列表。

TO ARRAY ArrayName

指定保存平均值結果的一維數組。一維數組可以在使用 average 命令前創建。
如果指定數組不存在,Visula FoxPro 將自動創建該數組。如果數組存在,但大小不能包含所有結果,Visula FoxPro 將自動根據信息量增加數組大小。

NOOPTIMIZE

取消 average 命令的 Rushmore 最佳化。有關的詳細內容,請參閱 SET OPTIMIZE 和掌握 Rushmore 技術,或《開發指南》的第十七章“最佳化程式”。

說明

除非包含可選的表達式列表,否則選定表的所有欄位都將參與求平均值的運算。如果 SET TALK 為 ON,結果顯示在螢幕上。如果 SET HEADINGS 為 ON,欄位名或包括欄位名的表達式將顯示在結果的上面。

average 命令示例

close databases
open database (home( ) + 'samples\data\testdata')
use orders && 打開 order 表
clear
average order_amt && 記算所有記錄的平均值
average order_amt to gnavg && 結果存入記憶體變數
? 'average order amount: '
?? gnavg && 再次顯示平均值

相關詞條

相關搜尋

熱門詞條

聯絡我們