Использование агрегатных функций
Применимо к: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
Если измерение используется для создания среза меры, то производится суммирование меры по иерархиям, содержащимся в этом измерении. Характер суммирования зависит от агрегатной функции, заданной для меры. Для большинства мер, содержащих числовые данные, агрегатная функция — Sum. Значение меры будет равно различным суммам в зависимости от того, какой уровень иерархии является активным.
В службах Analysis Services каждая созданная мера поддерживается функцией агрегирования, определяющей операцию меры. Предопределенные типы агрегирования включают Sum, Min, Max, Count, Distinct Countи некоторые другие более специализированные функции. Кроме того, если необходимы агрегаты на основании сложных или пользовательских формул, можно создавать вычисления многомерных выражений вместо готовых функций агрегирования. Например, для определения меры для процентного значения следует использовать многомерное выражение с вычисляемой мерой. См. инструкцию CREATE MEMBER (многомерные выражения).
Мерам, которые создаются с помощью мастера кубов, назначается тип агрегирования в качестве части определения меры. Тип агрегирования — всегда Sum, если исходный столбец содержит числовые данные. Sum назначается независимо от типа данных исходного столбца. Например, если используется мастер кубов для создания мер и извлечены все столбцы из таблицы фактов, все результирующие меры будут иметь агрегат Sum, даже если источник — столбец даты и времени. Всегда проверяйте предопределенный метод агрегирования мер, созданных с помощью мастера, чтобы убедиться в том, что функция подходит.
Метод агрегирования можно назначить или изменить в определении куба, с помощью SQL Server Data Tools бизнес-аналитики или многомерных выражений. Дополнительные инструкции см. в статье Создание мер и групп мер в многомерных моделях или агрегате (МНОГОМЕРные выражения).
Агрегатные функции
SQL Server Analysis Services предоставляет функции для агрегирования мер по измерениям, содержащимся в группах мер. Аддитивность агрегата определяет, как осуществляется статистическое вычисление меры по всем измерениям в кубе. Статистические функции подразделяются на три уровня аддитивности.
Аддитивный
Аддитивная мера, также называемая полностью аддитивной мерой, может быть статистически вычислена вдоль всех измерений в кубе, которые включены в группу мер, содержащую меру, без ограничений.
Полуаддитивная
Полуаддитивная мера может быть статистически вычислена вдоль некоторых, но не всех измерений, которые включены в группу мер, содержащую эту меру. Например, мера, представляющая количество, доступное для описи, может быть статистически вычислена вдоль измерения географии для получения суммарного количества, доступного на всех складах; но эта мера не может быть статистически вычислена вдоль измерения времени, поскольку она представляет собой периодический моментальный снимок доступных количеств. При статистическом вычислении подобной меры вдоль измерения времени получились бы неверные результаты. Дополнительные сведения см. в разделе Define Semiadditive Behavior .
Неаддитивная
Неаддитивная мера не может быть статистически вычислена вдоль какого-либо измерения в группе мер, содержащей эту меру. Вместо этого мера должна быть индивидуально вычислена для каждой ячейки в кубе, представляющей эту меру. Например, вычисляемую меру, возвращающую процентное значение, такое как маржа прибыли, нельзя вычислить на основе процентных значений дочерних элементов в каком-либо измерении.
В следующей таблице перечислены агрегатные функции в SQL Server Analysis Services, а также описаны как добавочной, так и ожидаемые выходные данные функции.
Статистическая функция | Аддитивность | Возвращаемое значение |
---|---|---|
Sum | Аддитивный | Вычисляет сумму значений всех дочерних элементов. Это статистическое вычисление по умолчанию. |
Count | Аддитивный | Получает количество всех дочерних элементов. |
Min | Полуаддитивная | Получает самое низкое значение для всех дочерних элементов. |
Max | Полуаддитивная | Получает самое высокое значение для всех дочерних элементов. |
Distinctcount | Неаддитивная | Получает количество всех уникальных дочерних элементов. Дополнительные сведения см. в подразделе About Distinct Count Measures следующего раздела. |
None | Неаддитивная | Статистическое вычисление не выполняется, и все значения для конечных и неконечных элементов в измерении получаются непосредственно из таблицы фактов для группы мер, содержащей эту меру. Если из таблицы фактов невозможно считать значение для элемента, то значение для этого элемента устанавливается равным NULL. |
ByAccount | Полуаддитивная | Вычисляет агрегат в соответствии со статистической функцией, присвоенной типу счета для элемента измерения счетов. Если в группе мер не существует измерения типа счета, то обрабатывается так же, как статистическая функция None . Дополнительные сведения об измерениях счетов см. в разделе Создание учетной записи Finance с измерением типа "родитель-потомок". |
AverageOfChildren | Полуаддитивная | Вычисляет среднее значений всех непустых дочерних элементов. |
FirstChild | Полуаддитивная | Получает значение первого дочернего элемента. |
LastChild | Полуаддитивная | Получает значение последнего дочернего элемента. |
FirstNonEmpty | Полуаддитивная | Получает значение первого непустого дочернего элемента. |
LastNonEmpty | Полуаддитивная | Получает значение последнего непустого дочернего элемента. |
About Distinct Count Measures
Мера, у которой для свойства Aggregate Function установлено значение Distinct Count , называется мерой числа различных объектов. Мера числа различных объектов может быть использована для подсчета вхождений элементов измерений самого низкого уровня в таблице фактов. Так как подсчитываются только уникальные объекты, то элемент, встречающийся несколько раз, посчитается только однажды. Мера числа различных объектов всегда помещается в специальной группе мер. Размещение мера числа различных объектов в отдельной группе мер является лучшим способом оптимизации производительности, встроенным в конструктор.
Меры числа различных объектов обычно используются, чтобы определить, сколько различных элементов другого измерения самого низкого уровня приходится на каждый элемент некоторого измерения в таблице фактов. Например, в кубе «Продажи», как много различной продукции было приобретено каждым покупателем или группой покупателей. (Т. е. сколько различных элементов измерения «Продукция» самого низкого уровня приходится на каждый элемент измерения «Заказчики» в таблице фактов.) Или, например, в кубе Internet Site Visits: как много разных сайтов приходится на каждого посетителя или группу посетителей? (Т. е. сколько различных элементов измерения «Страницы» самого низкого уровня приходится на каждый элемент измерения «Посетители сайта» в таблице фактов.) В каждом из этих примеров элементы самого низкого уровня вторых измерений подсчитаны как мера числа различных объектов.
Этот вид анализа может не ограничиваться двумя измерениями. Мера числа различных объектов может быть разделена и срезана любыми сочетаниями измерений в кубе, включая измерение, которое содержит подсчитываемые элементы.
Мера числа различных объектов, которая подсчитывает элементы, основана на внешнем ключевом столбце в таблице фактов. (Т. е. свойство меры Исходный столбец определяет этот столбец.) Этот столбец соединяет столбец таблицы измерения, который определяет элементы, подсчитываемые мерой числа различных объектов.
См. также:
Меры и их группы
Справочник по функциям многомерных выражений (многомерные выражения)
Определение полуаддитивного режима