Перейти к основному содержимому

Агрегационные функции

Агрегационные функции

avg(expr) – Среднее арифметическое

Функция avg возвращает среднее арифметическое значение от выражений expr, вычисленных для каждой строки куба, при этом учитываются фильтры, которые могут быть заданы настройками (конфигурацией) или пользователем в интерфейсе Luxms BI. В качестве expr можно использовать LPE выражения, но чаще всего используется имя столбца или константа.

Примеры:

avg(col1)
avg(col1/col2*100.0)

corr(expr1, expr2) – Коэффициент корреляции

Функция corr возвращает коэффициент корреляции между двумя выражениями, при этом учитываются фильтры, которые могут быть заданы настройками (конфигурацией) или пользователем в интерфейсе Luxms BI. В качестве expr можно использовать LPE выражения, но чаще всего используются имена столбцов.

Примеры:

corr(col1, col2)
corr(col1, col2 / col3)

count(expr) – Подсчет количества

Функция count возвращает количество строк в кубе, при этом учитываются фильтры, которые могут быть заданы настройками (конфигурацией) или пользователем в интерфейсе Luxms BI. В качестве expr можно использовать LPE выражения, но чаще всего используется имя столбца или константа.

к сведению

Для подсчёта уникальных значений можно воспользоваться комбинацией двух функций: count и distinct

Примеры:

count(col1)
count(100+20)
count(distinct(colname))
к сведению

Наличие параметра expr в LPE функции count объясняется стандартом SQL, где у функции count обязательно должен быть параметр. Однако, нужно помнить, что сам параметр не влияет на результат, который определяется исключительно условиями фильтров.

countIf(cond) – Подсчет количества при удовлетворении условия

Функция countIf возвращает количество строк в кубе, которые удовлетворяют условию cond.

Примеры:

countIf(col1 > 0 and round(col2) < 100)
countIf(col1/col2 > 1)
осторожно

В выражениях cond можно использовать арифметические выражения, скобки, логические выражения, другие функции. Однако нельзя использовать агрегационные функции. Например, выражение countIf(col1 < count(col1)) не поддерживается.

подсказка

Функция countIf появилась в luxmsbi-pg 9.2.2

distinct(col) - Уникальные значения

Функция distinct модифицирует поведение функции count и позволяет получить количество уникальных записей. Для короткой записи рекомендуется использовать функцию uniq.

Пример:

count(distinct(col1))
осторожно

Функция distinct не является самостоятельной функцией, её можно вызывать только в комбинации с функцией count!

max(expr) – Максимальное значение

Функция max возвращает максимальное значение для выражения expr, вычисленного для каждой строки в кубе, при этом учитываются фильтры, которые могут быть заданы настройками (конфигурацией) или пользователем в интерфейсе Luxms BI. В качестве expr можно использовать LPE выражения, но чаще всего используется имя столбца.

Примеры:

max(col1)
max(col1+col2)

median(expr) – Медиана

Функция median возвращает медиану для выражения expr, вычисленного для каждой строки в кубе, при этом учитываются фильтры, которые могут быть заданы настройками (конфигурацией) или пользователем в интерфейсе Luxms BI. В качестве expr можно использовать LPE выражения, но чаще всего используется имя столбца.

Медиана — это число, которое является серединой множества отсортированных чисел, то есть половина чисел имеют значения большие, чем медиана, а половина чисел имеют значения меньшие, чем медиана. Например, медианой для чисел 2, 3, 3, 5, 7 и 10 будет 4.

Примеры:

median(col1)
median(col1+col2)
осторожно

Функция median не поддерживается для Vertica.

mode(expr) – Мода

Функция mode возвращает наиболее часто встречающееся (типичное) значение для выражения expr, вычисленного для каждой строки в кубе, при этом учитываются фильтры, которые могут быть заданы настройками (конфигурацией) или пользователем в интерфейсе Luxms BI. В качестве expr можно использовать LPE выражения, но чаще всего используется имя столбца.

Примеры:

mode(col1)
mode(concat(col1, ':', col2))

Пример использования:

 measures: [
'mode(quantity):mode',
"mode(concat(package, ':', ' ', quantity, ' штук')):mode_",
],
Пример применения функции mode
осторожно

Функция mode не поддерживается для SAP HANA.

осторожно

Функция mode не поддерживается для Vertica.

min(expr) – Минимальное значение

Функция min возвращает минимальное значение для выражения expr, вычисленного для каждой строки в кубе, при этом учитываются фильтры, которые могут быть заданы настройками (конфигурацией) или пользователем в интерфейсе Luxms BI. В качестве expr можно использовать LPE выражения, но чаще всего используется имя столбца.

Примеры:

min(col1)
min(col1+col2)

quantile(expr, q)

Функция quantile вычисляет квантиль для столбца или LPE выражения, указанного в expr. Значение q должно находится в диапазоне от 0 до 1.

СУБДФункция
PostgreSQLpercentile_disc
Oraclepercentile_disc
ClickhousequantileExactLow

Функции, на основе которых вычисляется quantile в разных СУБД

Примеры:

quantile(col1, 0.5)
quantile(col2, 0.75)
подсказка

Функция quantile появилась в luxmsbi-pg 9.2.20

stddevSamp(expr) – Среднеквадратическое (стандартное) отклонение

Функция stddevSamp возвращает стандартное (среднеквадратическое) отклонение для выборки для выражения expr. stddevSamp — это квадратный корень из varSamp. В качестве expr можно использовать LPE выражения, но чаще всего используется имя столбца.

Формула для вычисления stddevSamp

Примеры:

stddevSamp(col1)
stddevSamp(col1+col2)
подсказка

Функция stddevSamp появилась в luxmsbi-pg 9.2.3

stddevPop(expr) – Среднеквадратическое (стандартное) отклонение

Функция stddevPop возвращает стандартное (среднеквадратическое) отклонение в генеральной совокупности expr. stddevPop — это квадратный корень из varPop. В качестве expr можно использовать LPE выражения, но чаще всего используется имя столбца.

Примеры:
stddevPop(col1)
stddevPop(col1+col2)
подсказка

Функция stddevPop появилась в luxmsbi-pg 9.2.3

sum(expr) – Сумма значений

Функция sum возвращает сумму значений для выражения expr, вычисленного для каждой строки в кубе, при этом учитываются фильтры, которые могут быть заданы настройками (конфигурацией) или пользователем в интерфейсе Luxms BI. В качестве expr можно использовать LPE выражения, но чаще всего используется имя столбца.

Примеры:

sum(col1)
sum(col1-col2)

total(expr) - Итог

Функция total вычисляет итоговое значение. В выражении expr должна быть хотя бы одна агрегатная функция.

осторожно

Если в выражении expr нет агрегатной функции, то выполнение запроса приведёт к ошибке!

Примеры:

sum(vat) / total(sum(vat))
sum(vat) / total(sum(vat) + sum(revenue))
sum(vat) / total(sum(vat+revenue))
sum(income) / total(count(id))
income / total(count(id))

Пример ошибочного выражения:

sum(vat) / total(vat + revenue) // => Ошибка!!!
подсказка

Функция total появилась в luxmsbi-pg 9.3.0

varPop(expr) - Дисперсия

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

Примеры:

varPop(col1)
varPop(col1+col2)
подсказка

Функция varPop появилась в luxmsbi-pg 9.2.3

varSamp(expr) – Дисперсия

Функция varSamp возвращает выборочную дисперсию expr. В качестве expr можно использовать LPE выражения, но чаще всего используется имя столбца.

Примеры:

varSamp(col1)
varSamp(col1+col2)
подсказка

Функция varSamp появилась в luxmsbi-pg 9.2.3

uniq(col) - Уникальные значения

Функция uniq подсчитывает количество уникальных значений в столбце col. При этом значения NULL обрабатываются как одинаковые значения, то есть считается, что NULL == NULL.

Пример:

uniq(col1)   // => count(distinct(col1))

Функция uniq(col) транслируется в SQL выражение count(distinct(col)) и является короткой записью для этого выражения. Однако, для СУБД Clickhouse можно управлять трансляцией с помощью настроек куба. Для этого к поле config куба необходимо поместить ключ count_distinct значением которого нужно указать настоящее имя функции, которая будет использоваться при трансляции. Например: uniq, UniqExact или uniqHLL12.

Пример настроек куба:

{"count_distinct": "uniq"}

При этом выражение uniq(col), отправленное в этот куб, транслируется в SQL uniq(col), а не в стандартный count(distinct(col))

подсказка

Функция uniq появилась в luxmsbi-pg 9.3.0