Average
Average ( series {; attributePath} ) : Real
引数 | 型 | 説明 | |
---|---|---|---|
series | Field, Array | → | 平均を求めるデータ |
attributePath | Text | → | 平均を取得したい属性のパス |
戻り値 | Real | ← | seriesの平均値 |
説明
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