Функции агрегации
Обзор
Функции применяются при построении параметра aggr запроса на агрегирующую выборку из коллекции динамического класса.
Сам факт построения агрегирующего запроса обязывает к использованию хотя бы одной агрегирующей функции.
Порядок построения фильтра
В качестве значения параметра aggr при построении агрегирующего запроса указывается объект, ключами которого являются возвращаемые поля, каждое из которых содержит агрегирующее значение.
В качестве значения этих ключей необходимо указать список, первым элементом которого является одна из агрегирующих функций, а другими элементами - параметры этой функции.
["count",1] ["sum",["property","pint"]]
В качестве параметра может быть указана любая суперпозиция поддерживаемых функций общего назначения.
["sum",["%",["-",["property","pint"],1],10]]
В общем случае значение параметра aggr может выглядеть так:
.
{
"x": ["sum",["//",["-",["property","pint"],1],10]],
"any": ["or",["property","pbool"]]
}
Список поддерживаемых функций
Все функции применяются к значениям в группе с одинаковой базой.
-
count/1- подсчет количества элементов в группе. Параметр - произвольное значение. -
sum/1- суммирование числового значения. Параметр - как правило функция ["property",FIELDNAME]. В ряде случаев может оказаться полезным генерация по условию 0 или 1. -
min/1- вычисление минимального значения. -
max/1- вычисление максимального значения. -
avg/1- вычисление среднего значения. Для построения взвешенной суммы в качестве параметра можно передавать функцию от значения, например умножение на весовой коэффициент, который также вычисляется как функция. -
and/1- булевое перемножение значений. -
or/1- булевое сложение значений. -
join/2- зацепление строк через разделитель. Первый аргумент - разделитель (выражен как константа или функция), второй элемент - значение (выражен произвольной функцией).