average 命令計算數值表達式或欄位的算術平均值。
基本介紹
- 中文名: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,欄位名或包括欄位名的表達式將顯示在結果的上面。
示例
close databasesopen database (home( ) + 'samples\data\testdata')use orders && 打開 order 表clearaverage order_amt && 記算所有記錄的平均值average order_amt to gnavg && 結果存入記憶體變數? 'average order amount: '?? gnavg && 再次顯示平均值