Aggregate (MDX)

セット式から返されたセルを集計することによって計算した数値を返します。数値式が指定されていない場合は、メジャーごとに指定されている既定の集計演算子を使用して、現在のクエリ コンテキスト内で各メジャーを集計します。数値式が指定されている場合は、指定されたセット内のセルごとに数値式を評価してから、合計を算出します。

構文

Aggregate(Set_Expression [ ,Numeric_Expression ])

引数

  • Set_Expression
    セットを返す有効な多次元式 (MDX) 式です。

  • Numeric_Expression
    有効な数値式です。通常は、数値を返すセル座標の多次元式 (MDX) 式です。

説明

空の組のセットまたは空のセットを指定した場合、この関数は空の値を返します。

次の表は、各種集計関数を使用した場合の Aggregate 関数の動作を示しています。

集計演算子

結果

Sum

セット全体の値の合計を返します。

Count

セット全体の値の数を返します。

Max

セット全体の最大値を返します。

Min

セット全体の最小値を返します。

準加法集計関数

時間軸に図形を投影してから、準加法動作の計算結果を返します。

Distinct Count

スライサ軸にセットが含まれている場合、サブキューブに関与するファクト データ全体で集計を行います。

セットのメンバごとに個別のカウントを返します。その結果は、計算に必要なセルのセキュリティではなく、集計対象のセルのセキュリティによって異なります。セットにセル セキュリティが指定されているとエラーが生成されますが、指定されているセットの粒度より下位のセル セキュリティは無視されます。セットに関する計算はエラーになります。セットの粒度よりも下位の計算は無視されます。1 つのメンバとそのメンバの子が 1 つ以上含まれているセット全体に対する個別カウントは、子メンバに関与するファクト全体の個別カウントになります。

集計できない属性

値の合計を返します。

集計関数の混合

サポートされていないので、エラーになります。

単項演算子

影響しません。値は合計を算出することによって集計されます。

計算されるメジャー

計算されるメジャーを確保するために設定された解決順序が適用されます。

計算されるメンバ

通常の規則が適用されます。つまり、最後の解決順序が優先されます。

代入

代入により、メジャー集計関数に従って集計が行われます。メジャー集計関数が個別カウントの場合、代入の合計が算出されます。

次の例では、Adventure Works キューブから、Date ディメンションに含まれる 2003 年の最初の 8 か月を集計した Measures.[Order Quantity] メンバの合計を返しています。

WITH MEMBER [Date].[Calendar].[First8Months2003] AS
    Aggregate(
        PeriodsToDate(
            [Date].[Calendar].[Calendar Year], 
            [Date].[Calendar].[Month].[August 2003]
        )
    )
SELECT 
    [Date].[Calendar].[First8Months2003] ON COLUMNS,
    [Product].[Category].Children ON ROWS
FROM
    [Adventure Works]
WHERE
    [Measures].[Order Quantity]

次の例では、2003 年下半期の最初の 2 か月を集計しています。

WITH MEMBER [Date].[Calendar].[First2MonthsSecondSemester2003] AS
    Aggregate(
        PeriodsToDate(
            [Date].[Calendar].[Calendar Semester], 
            [Date].[Calendar].[Month].[August 2003]
        )
    )
SELECT 
    [Date].[Calendar].[First2MonthsSecondSemester2003] ON COLUMNS,
    [Product].[Category].Children ON ROWS
FROM
    [Adventure Works]
WHERE
    [Measures].[Order Quantity]

次の例では、Aggregate 関数を使用して評価された、ユーザー選択の State-Province メンバ値に基づいて、1 つ前の期よりも売上が減少した再販業者の数を返します。Product ディメンションに含まれる製品カテゴリに関して減少した売上の値を返すために、Hierarchize 関数および DrillDownLevel 関数を使用しています。

WITH MEMBER Measures.[Declining Reseller Sales] AS 
   Count(
      Filter(
         Existing(Reseller.Reseller.Reseller), 
            [Measures].[Reseller Sales Amount] < ([Measures].[Reseller Sales Amount],
            [Date].Calendar.PrevMember)
            )
         )
MEMBER [Geography].[State-Province].x AS 
   Aggregate ( 
      {[Geography].[State-Province].&[WA]&[US], 
      [Geography].[State-Province].&[OR]&[US] } 
         )
SELECT NON EMPTY Hierarchize (
   AddCalculatedMembers (
      {DrillDownLevel({[Product].[All Products]})}
         )
   )
        DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS 
FROM [Adventure Works]
WHERE ([Geography].[State-Province].x, 
    [Date].[Calendar].[Calendar Quarter].&[2003]&[4],
    [Measures].[Declining Reseller Sales])