Агрегационные функции
Агрегационные функции
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
не поддерживается для 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.
СУБД | Функция |
---|---|
PostgreSQL | percentile_disc |
Oracle | percentile_disc |
Clickhouse | quantileExactLow |
Функции, на основе которых вычисляется quantile
в разных СУБД
Примеры:
quantile(col1, 0.5)
quantile(col2, 0.75)
Функция quantile
появилась в luxmsbi-pg 9.2.20
stddevSamp(expr) – Среднеквадратическое (стандартное) отклонение
Функция stddevSamp
возвращает стандартное (среднеквадратическое) отклонение для выборки для выражения expr
. stddevSamp
— это квадратный корень из varSamp
. В качестве expr
можно использовать LPE выражения, но чаще всего используется имя столбца.
Примеры:
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