Функции агрегирования

Функции агрегирования выполняют операции над несколькими значениями для получения сводного результата.

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

  • По умолчанию: применение правила агрегирования по умолчанию, как в семантической модели, так и исходным автором анализа. Недоступно для вычисляемых элементов в анализах.

  • Определяется сервером: применяется правило агрегирования, определенное в Oracle Analytics (например, правило, которое определено в семантической модели). Агрегирование выполняется в Oracle Analytics для простых правил, таких как "Сумма", "Мин." и "Макс." Недоступно для столбцов показателей на панели "Макет" или для вычисляемых элементов в анализах.

  • Сумма — вычисление суммы всех значений в наборе результатов. Используется для элементов с числовыми значениями.

  • Мин. — вычисление минимального значения (наименьшего числового значения) в строках набора результатов. Используется для элементов с числовыми значениями.

  • Макс. — вычисление максимального значения (наибольшего числового значения) в строках набора результатов. Используется для элементов с числовыми значениями.

  • Среднее — служит для вычисления среднего значения выражения в наборе результатов. Используется для элементов с числовыми значениями. Средние значения в обычных и сводных таблицах округляются до ближайшего целого числа.

  • Первое — выбор в наборе результатов первого вхождения элемента для показателей. Для вычисляемых элементов выбирает первый элемент в соответствии с отображением в списке "Выбранные". Недоступно в диалоговом окне Редактирование формулы столбца.

  • Последнее — выбор последнего вхождения элемента в наборе результатов. Для вычисляемых элементов выбирает последний элемент в соответствии с отображением в списке "Выбранные". Недоступно в диалоговом окне Редактирование формулы столбца.

  • Количество — вычисление количества строк (в наборе результатов), содержащих отличное от null значение данного элемента. Элемент обычно является именем столбца. В этом случае возвращается число строк с отличными от null значениями для этого столбца.

  • Кол-во уникальных — служит для добавления к функции "Количество" обработки неповторяющихся значений. Это означает, что каждое отдельное вхождение элемента подсчитывается только один раз.

  • Нет — агрегирование не применяется. Недоступно для вычисляемых элементов в анализах.

  • Итог на основе отчета (если применимо) — если выбран этот вариант, то Oracle Analytics должен рассчитать итог на основе всего набора результатов, прежде чем применять фильтры к мерам. Недоступно в диалоговом окне Редактирование формулы столбца или для вычисляемых элементов анализов. Доступно только для столбцов атрибутов.

Функция Пример Описание Синтаксис

AGGREGATE AT

AGGREGATE(sales AT year)

Агрегирование столбцов на основе уровня или уровней в указанной иерархии модели данных.

  • measure — это имя столбца показателя.
  • level — это уровень, на котором требуется агрегировать данные.

При необходимости можно указать несколько уровней. Нельзя задать уровень из измерения, которое содержит уровни, используемые как уровни показателя первого аргумента. Например, нельзя записать функцию в виде AGGREGATE(yearly_sales AT month), если month относится к тому же измерению времени, которое используется в качестве уровня показателя для yearly_sales.

AGGREGATE(measure AT level [, level1, levelN])

AGGREGATE BY AGGREGATE(sales BY month, region) Агрегирование показателя на основе одного или нескольких столбцов измерений.
  • measure — это имя столбца показателя для агрегирования.

  • column — это столбец измерения, в котором требуется агрегировать данные.
Можно агрегировать показатели на основе нескольких столбцов.
AGGREGATE(measure BY column [, column1, columnN])

AVG

Avg(Sales)

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

AVG(expr)

AVGDISTINCT

 

Служит для вычисления среднего (медианы) от всех неповторяющихся значений в выражении.

AVG(DISTINCT expr)

BIN

BIN(revenue BY productid, year WHERE productid > 2 INTO 4 BINS RETURNING RANGE_LOW)

Разбивка числового выражения на заданное количество блоков. Функция может вернуть либо номер интервала, либо одну из двух конечных точек интервала группирования. numeric_expr — это атрибут измерения или числовой атрибут для группирования. BY grain_expr1,…, grain_exprN — это список выражений, определяющих детализацию, с которой вычисляется numeric_expr. Оператор BY необходим для выражений показателей и не обязателен для выражений атрибутов. WHERE — фильтр, применяемый к numeric_expr перед назначением числовых значений инфоконтейнерам. INTO number_of_bins BINS — количество возвращаемых инфоконтейнеров. BETWEEN min_value AND max_value — минимальное и максимальное значения, используемые для конечных точек самых дальних инфоконтейнеров. RETURNING NUMBER указывает, что возвращаемое значение должно быть номером инфоконтейнера (1, 2, 3, 4 и т. д.). Это значение задано по умолчанию. RETURNING RANGE_LOW указывает нижнее значение интервала инфоконтейнера. RETURNING RANGE_HIGH указывает верхнее значение интервала инфоконтейнера.

BIN(numeric_expr [BY grain_expr1, ..., grain_exprN] [WHERE condition] INTO number_of_bins BINS [BETWEEN min_value AND max_value] [RETURNING {NUMBER | RANGE_LOW | RANGE_HIGH}])

BottomN

 

Присваивает n наименьшим значениям выражения ранг от 1 до n, 1 соответствует наименьшему числовому значению.

expr —любое выражение, в результате вычисления которого получается числовое значение. integer — любое положительное целое число. Представляет нижнее число рангов, отображаемых в наборе результатов, причем 1 соответствует наименьшему рангу.

BottomN(expr, integer)

COUNT

COUNT(Products)

Определяет количество элементов с ненулевым значением.

COUNT(expr)

COUNTDISTINCT

 

Служит для добавления к функции COUNT обработки неповторяющихся значений.

expr — любое выражение.

COUNT(DISTINCT expr)

COUNT*

SELECT COUNT(*) FROM Facts

Служит для подсчета числа строк.

COUNT(*)

Первый

First(Sales)

Выбирает первое ненулевое возвращенное значение аргумента выражения. Функция First работает на уровне наибольшей детализации, указанном в явно определенном измерении.

First([NumericExpression)]

Последний

Last(Sales)

Выбирает последнее ненулевое возвращенное значение выражения.

Last([NumericExpression)]

MAVG

 

Служит для вычисления скользящего среднего (усредненного значения) для последних n строк данных набора результатов, включая текущую строку.

expr —любое выражение, в результате вычисления которого получается числовое значение. integer — любое положительное целое число. Представляет среднее для последних n строк данных.

MAVG(expr, integer)

MAX

MAX(Revenue)

Служит для вычисления максимального значения (наибольшего числового значения) для строк, удовлетворяющих аргументу числового выражения.

MAX(expr)

MEDIAN

MEDIAN(Sales)

Служит для вычисления медианы строк, удовлетворяющих аргументу числового выражения. В случае четного числа строк медиана — это среднее двух центральных строк. Эта функция всегда возвращает значение типа double.

MEDIAN(expr)

MIN

MIN(Revenue)

Служит для вычисления минимального значения (наименьшего числового значения) для строк, удовлетворяющих аргументу числового выражения.

MIN(expr)

NTILE

 

Определяет ранг значения из заданного пользователям диапазона. Возвращает целые значения, представляющие произвольный диапазон рангов. NTILE при numTiles=100 возвращает значение, которое общеизвестно как "процентиль" (где числа ранжируются от 1 до 100, причем значению 100 соответствует максимум из отсортированных значений).

expr — любое выражение, в результате вычисления которого получается числовое значение. numTiles — любое положительное целое число, которое представляет число элементов мозаики.

NTILE(expr, numTiles)

PERCENTILE

 

Служит для вычисления процентиля для каждого значения, удовлетворяющего аргументу числового выражения. Процентиль меняется в диапазоне от 0 (0-й процентиль) до 1 (100-й процентиль).

expr — любое выражение, в результате вычисления которого получается числовое значение.

PERCENTILE(expr)

RANK

RANK(chronological_key, null, year_key_columns)

Служит для вычисления ранга каждого значения, удовлетворяющего аргументу числового выражения. Наибольшему значению присваивается ранг 1, а каждому следующему по порядку рангу присваивается следующее по порядку целое число (2, 3, 4,...). Если имеется несколько равных значений, им присваивается одинаковый ранг (например, 1, 1, 1, 4, 5, 5, 7...).

expr — любое выражение, в результате вычисления которого получается числовое значение.

RANK(expr)

STDDEV

STDDEV(Sales) STDDEV(DISTINCT Sales)

Возвращает среднеквадратическое отклонение для набора значений. Всегда возвращается значение типа double.

STDDEV(expr)

STDDEV_POP

STDDEV_POP(Sales) STDDEV_POP(DISTINCT Sales)

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

STDDEV_POP([NumericExpression])

SUM

SUM(Revenue)

Служит для вычисления суммы всех значений, удовлетворяющих аргументу числового выражения.

SUM(expr)

SUMDISTINCT

 

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

expr — любое выражение, в результате вычисления которого получается числовое значение.

SUM(DISTINCT expr)

TOPN

 

Присваивает n максимальным значениям выражения ранг от 1 до n, 1 соответствует максимальному числовому значению.

expr —любое выражение, в результате вычисления которого получается числовое значение. integer — любое положительное целое число. Представляет верхнее число рангов, отображаемых в наборе результатов, причем 1 соответствует наибольшему рангу.

TOPN(expr, integer)

Советы по использованию функций агрегирования

Вот несколько советов, которые помогут достичь наилучших результатов при использовании функций агрегирования в рабочих книгах.

Советы

  • First, Last. Избегайте использования первых и последних агрегирований с линейчатым типом диаграммы 100%. Указание текущей даты в поле По добавляет детализацию запроса, который извлекает все строки для визуализации плюс текущую дату. Затем функция Last возвращает последнюю строку в этом наборе результатов, которая зависит от того, как данные возвращаются из источника.
  • Min – используйте Min, чтобы вычислить наименьшее значение в наборе строк. Чтобы найти наименьшее значение в наборе столбцов, используйте Evaluate. Пример:

    evaluate('least(%1,%2,%3)',column date 1,date 2,date 3)