Avg (MDX)
Evaluates a set and returns the average of the non empty values of the cells in the set, averaged over the measures in the set or over a specified measure.
Syntax
Avg( Set_Expression [ , Numeric_Expression ] )
Arguments
Set_Expression
A valid Multidimensional Expressions (MDX) expression that returns a set
Numeric_Expression
A valid numeric expression that is typically a Multidimensional Expressions (MDX) expression of cell coordinates that return a number.
Remarks
If a set of empty tuples or an empty set is specified, the Avg function returns an empty value.
The Avg function calculates the average of the nonempty values of cells in the specified set by first calculating the sum of values across cells in the specified set, and then dividing the calculated sum by the count of nonempty cells in the specified set.
Note
Analysis Services ignores nulls when calculating the average value in a set of numbers.
If a specific numeric expression (typically a measure) is not specified, the Avg function averages each measure within the current query context. If a specific measure is provided, the Avg function first evaluates the measure over the set, and then the function calculates the average based on the specified measure.
Note
When using the CurrentMember function in a calculated member statement, you must specify a numeric expression because no default measure exists for the current coordinate in such a query context.
To force the inclusion of empty cells, the application must use the CoalesceEmpty function or specify a valid Numeric_Expression that supplies a value of zero (0) for empty values. For more information about empty cells, see the OLE DB documentation.
Examples
The following example returns the average for a measure over a specified set. Notice that the specified measure can be either the default measure for the members of the specified set or a specified measure.
WITH SET [NW Region] AS
{[Geography].[State-Province].[Washington]
, [Geography].[State-Province].[Oregon]
, [Geography].[State-Province].[Idaho]}
MEMBER [Geography].[Geography].[NW Region Avg] AS
AVG ([NW Region]
--Uncomment the line below to get an average by Reseller Gross Profit Margin
--otherwise the average will be by whatever the default measure is in the cube,
--or whatever measure is specified in the query
--, [Measures].[Reseller Gross Profit Margin]
)
SELECT [Date].[Calendar Year].[Calendar Year].Members ON 0
FROM [Adventure Works]
WHERE ([Geography].[Geography].[NW Region Avg])
The following example returns the daily average of the Measures.[Gross Profit Margin]
measure, calculated across the days of each month in the 2003 fiscal year, from the Adventure Works cube. The Avg function calculates the average from the set of days that are contained in each month of the [Ship Date].[Fiscal Time]
hierarchy. The first version of the calculation shows the default behavior of Avg in excluding days that did not record any sales from the average, the second version shows how to include days with no sales in the average.
WITH MEMBER Measures.[Avg Gross Profit Margin] AS
Avg(
Descendants(
[Ship Date].[Fiscal].CurrentMember,
[Ship Date].[Fiscal].[Date]
),
Measures.[Gross Profit Margin]
), format_String='percent'
MEMBER Measures.[Avg Gross Profit Margin Including Empty Days] AS
Avg(
Descendants(
[Ship Date].[Fiscal].CurrentMember,
[Ship Date].[Fiscal].[Date]
),
CoalesceEmpty(Measures.[Gross Profit Margin],0)
), Format_String='percent'
SELECT
{Measures.[Avg Gross Profit Margin],Measures.[Avg Gross Profit Margin Including Empty Days]} ON COLUMNS,
[Ship Date].[Fiscal].[Fiscal Year].Members ON ROWS
FROM
[Adventure Works]
WHERE([Product].[Product Categories].[Product].&[344])
The following example returns the daily average of the Measures.[Gross Profit Margin]
measure, calculated across the days of each semester in the 2003 fiscal year, from the Adventure Works cube.
WITH MEMBER Measures.[Avg Gross Profit Margin] AS
Avg(
Descendants(
[Ship Date].[Fiscal].CurrentMember,
[Ship Date].[Fiscal].[Date]
),
Measures.[Gross Profit Margin]
)
SELECT
Measures.[Avg Gross Profit Margin] ON COLUMNS,
[Ship Date].[Fiscal].[Fiscal Year].[FY 2003].Children ON ROWS
FROM
[Adventure Works]