Функции агрегации
Обзор
Функции применяются при построении параметра 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
- зацепление строк через разделитель. Первый аргумент - разделитель (выражен как константа или функция), второй элемент - значение (выражен произвольной функцией).