メインコンテンツまでスキップ
バージョン: 20 R7 BETA

Average

Average ( series {; attributePath} ) -> 戻り値

引数説明
seriesField, Array平均を求めるデータ
attributePathText平均を取得したい属性のパス
戻り値Realseriesの平均値

説明

Averageは、seriesの平均値を返します。seriesがインデックスフィ-ルドの場合には、平均値を求めるためにインデックスが使用されます。

seriesに (1または2次元の) 配列を渡すこともできます。この場合配列は整数、倍長整数、または実数型でなければなりません。

このコマンドは、seriesがオブジェクト型フィールドである場合にのみ、テキスト型である任意のattributePath引数を受け入れます。これにより計算したい属性のパスを定義する事ができます。ネストされた属性に対しては標準のドット表記(例:"company.address.number")を使用して下さい。オブジェクトの属性名は大文字と小文字を区別するという点に注意して下さい。
数値型の属性のみ計算されます。
属性のパス内の値に数値型でないものがあった場合、それらは無視されます。

このコマンドが正しく実行されると、OKシステム変数は1に設定されます。ユーザが進捗サーモメータの停止ボタンをクリックするなどして処理が中断されると、OK変数は0に設定されます。

例題 1

以下の例は、出力フォームのB0ブレークエリアにある変数vAverageに値を代入します。このコードは変数vAverageのオブジェクトメソッドです。オブジェクトメソッドは、レベル0のブレークが発生したときに実行されます:

 vAverage:=Average([Employees] Salary)

以下のメソッドは、ブレーク処理をアクティブにしてセレクション内のレコードを印刷するために呼び出されます:

 ALL RECORDS([Employees])
 ORDER BY([Employees];[Employees]LastNm;>)
 BREAK LEVEL(1)
 ACCUMULATE([Employees]Salary)
 FORM SET OUTPUT([Employees];"PrintForm")
 PRINT SELECTION([Employees])

Note: BREAK LEVELコマンドの引数は、印刷するレポートのブレーク数と同じ数でなければなりません。ブレーク処理に関する詳細は印刷コマンドを参照してください。

例題 2

この例題ではセレクション中トップ15の平均点を計算します:

 ARRAY REAL($ArrGrades;0)
 QUERY([Exams];[Exams]Exam_Date=!11/07/01!)
 ORDER BY([Exams];[Exams]Exam_Grade;<)
 SELECTION TO ARRAY([Exams]Exam_Grade;$ArrGrades)
 ARRAY REAL($ArrGrades;15)
 vAverage:=Average($ArrGrades)

例題 3

[Customer]テーブル内に、以下のようなデータを含む"full_Data"オブジェクトフィールドが格納されている場合を考えます:

以下の様な計算をする事ができます:

 var $vAvg : Real
 ALL RECORDS([Customer])
 $vAvg:=Average([Customer]full_Data;"age")
  //$vAvg は 44.46
 
 var $vTot : Integer
 $vTot:=Sum([Customer]full_Data;"Children[].age")
  //$vTot は 105

参照

ACCUMULATE
BREAK LEVEL
Max
Min
ORDER BY
PRINT SELECTION
Subtotal
Sum