AVG (MDX)
返りタイプ
この関数は、数値を返します。
構文および詳細
AVG(set_expression, optional_numeric_expression)
以下は、この指定の説明です。
-
set_expression は、セットに対して評価される式です。このセットは通常、メンバまたはタプルのセットです。
-
optional_numeric_expression は、セット要素ごとにこの関数が評価する数値式です。
通常、この式の形式は、[MEASURES].[measure_name] です。
数値式を指定しない場合、システムは現在の結果セルで使用されるメジャーを使用します。例えば、0 軸で使用されたメジャーまたは WHERE 節で指定されたメジャーです (これらがある場合)。クエリ自体がメジャーを指定しない場合は、ファクト・テーブル内のレコードをカウントする %COUNT が代わりに使用されます。
この関数は、セットの各要素に対して数値を評価し、この値が NULL である要素があればすべて無視し、残りの要素の平均値を計算します。
平均に NULL 要素を含める場合は、値を NULL から 0 に置き換える optional_numeric_expression の式を使用します。
すべての要素の数値が NULL の場合、この関数は NULL を返します。
例
まず、以下のクエリは、aged.decade レベルのメンバに関する、3 つのメジャーの値を示します。
SELECT {MEASURES.[%COUNT],MEASURES.[encounter count],MEASURES.[avg test score]} ON 0,
birthd.decade.MEMBERS ON 1 FROM patients
Patient Count Encounter Count Avg Test Score
1 1910s 80 5,359 75.17
2 1920s 227 12,910 74.20
3 1930s 567 33,211 74.67
4 1940s 724 38,420 73.39
5 1950s 1,079 46,883 73.72
6 1960s 1,475 57,814 74.16
7 1970s 1,549 49,794 74.35
8 1980s 1,333 35,919 74.13
9 1990s 1,426 29,219 74.79
10 2000s 1,406 20,072 74.95
11 2010s 134 1,346 73.55
次に、以下のクエリは、このレベルのメンバに関する、これらのメジャーの平均値を示します。
SELECT {MEASURES.[%COUNT],MEASURES.[encounter count],MEASURES.[avg test score]} ON 0,
AVG(birthd.decade.MEMBERS) ON 1 FROM patients
Patient Count Encounter Count Avg Test Score
AVG 909.09 30,086.09 74.28
ここで、それぞれの値は、上記クエリの列内の値の平均です。例えば、Patient Count 値は、上記クエリの Patient Count 値の平均です。
別の例では、AVG の 2 番目の引数を使用します。
SELECT AVG(birthd.decade.MEMBERS, MEASURES.[%COUNT]) ON 0 FROM patients
AVG
909.09
以下の例では、メジャーを指定しないクエリで AVG を使用します。
SELECT AVG(birthd.decade.MEMBERS) ON 0 FROM patients
AVG
909.09
この場合、この関数は、ファクト・テーブル内のレコードをカウントする %COUNT を使用します。
最後に、以下の例では、WHERE 節でメジャーを指定するクエリで AVG を使用します。
SELECT AVG(birthd.decade.MEMBERS) ON 0 FROM patients WHERE MEASURES.[encounter count]
AVG
30,086.09
この場合、この関数は、WHERE 節で指定されたメジャーを使用します。