Поделиться через


Avg (многомерные выражения)

Вычисляет набор и возвращает среднее непустых значений ячеек набора; среднее считается по мерам в наборе или по указанной мере.

Синтаксис

Avg( Set_Expression [ , Numeric_Expression ] )

Аргументы

  • Set_Expression
    Допустимое многомерное выражение, возвращающее набор.

  • Numeric_Expression
    Допустимое числовое выражение (обычно многомерное выражение координат ячейки, возвращающее число).

Замечания

Если указан набор пустых кортежей или пустой набор, функция Avg возвращает пустое значение.

Функция Avg вычисляет среднее из непустых значений ячеек в заданном наборе. При этом сначала рассчитывается сумма значений всех ячеек указанного набора, а затем полученная сумма делится на количество непустых ячеек набора.

ПримечаниеПримечание

Службы Analysis Services отбрасывает неопределенные значения при вычислении среднего значения для набора чисел.

Если числовое выражение (обычно мера) не указано, функция Avg вычисляет среднее значение для всех мер в текущем контексте запроса. Если конкретная мера указана, функция Avg сначала вычисляет меру по набору, а затем рассчитывает среднее на основе указанной меры.

ПримечаниеПримечание

При использовании функции CurrentMember в инструкции вычисляемого элемента необходимо задать числовое выражение, потому что меры по умолчанию для текущей координаты в таком контексте запроса не существует.

Чтобы принудительно включить обработку пустых ячеек, в приложении необходимо использовать функцию CoalesceEmpty или указать допустимый аргумент Numeric_Expression, в котором пустым ячейкам присваивается значение «ноль» (0). Дополнительные сведения о пустых ячейках см. в документации по OLE DB.

Примеры

Следующий пример возвращает среднее значение для меры в указанном наборе. Обратите внимание, что заданная мера может быть либо мерой по умолчанию для элементов указанного набора, либо указанной мерой.

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])

В следующем примере возвращается среднее ежедневное значение меры Measures.[Gross Profit Margin], вычисленное по всем дням всех месяцев 2003 финансового года в кубе Adventure Works. Функция Avg вычисляет среднее по набору дней, содержащихся в каждом месяце иерархии [Ship Date].[Fiscal Time]. Первая версия вычислений показывает поведение функции Avg по умолчанию, состоящее в исключении из среднего значения дней, в которые не было зафиксировано ни одной продажи. Вторая версия показывает, как включить в среднее значение дни без продаж.

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])

В следующем примере возвращается среднее ежедневное значение меры Measures.[Gross Profit Margin], вычисленное по всем дням каждого полугодия 2003 финансового года в кубе Adventure Works.

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]