Funções de agregação aggregation-functions
As funções de agregação executam cálculos em um conjunto de valores e retornam um único resultado resumido. Essas funções permitem analisar dados nas expressões de jornada calculando médias, localizando valores mínimos e máximos, contando elementos e somando valores numéricos.
Use funções de agregação quando precisar:
- Calcular valores estatísticos a partir de listas ou matrizes (avg, sum, min, max)
- Contar elementos em coleções (count, countOnlyNull, countWithNull), com opções para incluir ou excluir valores nulos
- Determinar valores exclusivos nos conjuntos de dados (distinctCount, distinctCountWithNull)
- Tomar decisões orientadas por dados com base em métricas calculadas
As funções de agregação tratam automaticamente valores nulos de acordo com seu comportamento específico, facilitando o trabalho com dados reais que podem conter valores ausentes ou indefinidos.
avg avg
Retorna o valor médio entre um conjunto de expressões, fornecido como uma lista ou duas expressões. Valores nulos são ignorados.
avg(<parameter>)Tipos suportados:
- listInteger
- listDecimal
- decimal
- inteiro
avg(<listInteger>)
avg(<listDecimal>)
avg(<decimal>,<decimal>)
avg(<decimal>,<integer>)
avg(<integer>,<decimal>)
avg(<integer>,<integer>)
Retorna um decimal.
avg(@event{BarBeacon.inventory},5)
avg([10,3,8])
Retorna 7.0.
avg(10.2, 3)
Retorna 6.6.
contagem count
Conta os elementos da lista sem levar em conta os valores nulos.
count(<listAny>)
count(<listObject>)
| table 0-row-3 1-row-3 | ||
|---|---|---|
| Parâmetro | Tipo | Descrição |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly ou listObject | Lista a processar. Para listObject, ele deve ser uma referência de campo. Um listObject não pode conter um objeto nulo. |
count(<listAny>)
Retorna um inteiro.
count([10,2,10,null])
Retorna 3.
count(@event{my_event.productListItems})
Retorna o número de objetos na matriz de objetos fornecida (tipo listObject). Observação: um listObject não pode conter objeto nulo
countOnlyNull countOnlyNull
Conta o número de valores nulos na lista.
countOnlyNull(<listAny>)| table 0-row-2 1-row-2 | |
|---|---|
| Parâmetro | Tipo |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly |
countOnlyNull(<listAny>)
Retorna um inteiro.
countOnlyNull([10,2,10,null])
Retorna 1.
Observação: o parâmetro <listObject> não tem suporte nesta função.
countWithNull countWithNull
Conta todos os elementos da lista, incluindo valores nulos.
countWithNull(<listAny>)| table 0-row-2 1-row-2 | |
|---|---|
| Parâmetro | Tipo |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly |
countWithNull(<listAny>)
Retorna um inteiro.
countWithNull([10,2,10,null])
Retorna 4.
Observação: o parâmetro <listObject> não tem suporte nesta função.
distinctCount distinctCount
Conta o número de valores diferentes ignorando os valores nulos.
distinctCount(<listAny>)| table 0-row-3 1-row-3 2-row-3 | ||
|---|---|---|
| Parâmetro | Tipo | Descrição |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly ou listObject | Lista a processar. Para listObject, ele deve ser uma referência de campo. |
| keyAttributeName | sequência de caracteres | Este parâmetro é opcional e somente para listObject. Se o parâmetro não for fornecido, um objeto será considerado duplicado se todos os atributos tiverem os mesmos valores. Caso contrário, um objeto será considerado duplicado se o atributo em questão tiver o mesmo valor. |
distinctCount(<listAny>)
Retorna um inteiro.
distinctCount(<listObject>)
distinctCount(<listObject>,<string>)
Retorna uma lista de objetos.
distinctCount([10,2,10,null])
Retorna 2.
distinctCount(@event{my_event.productListItems})
Retorna o número de objetos estritamente distintos na matriz de objetos fornecida (tipo listObject).
distinctCount(@event{my_event.productListItems}, "SKU")
Retorna o número de objetos que têm um valor de atributo “SKU” distinto {}.
distinctCountWithNull distinctCountWithNull
Conta o número de valores diferentes, incluindo os valores nulos.
distinctCountWithNull(<listAny>)| table 0-row-2 1-row-2 | |
|---|---|
| Parâmetro | Tipo |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly |
distinctCountWithNull(<listAny>)
Retorna um inteiro.
distinctCountWithNull([10,2,10,null])
Retorna 3.
Observação: o parâmetro <listObject> não tem suporte nesta função.
max max
Retorna o valor máximo entre um conjunto de expressões, fornecido como uma lista ou duas expressões. Valores nulos são ignorados.
max(<parameter>)- listDuration
- listInteger
- listDecimal
- listDateTime
- listDateTimeOnly
- listDateOnly
- duração
- inteiro
- decimal
- dateTime
- dateTimeOnly
max(<listDuration>)
Retorna uma duração.
max(<listInteger>)
Retorna uma duração.
max(<listDateTimeOnly>)
Retorna uma data e hora sem considerar o fuso horário.
max(<listDateTime>)
Retorna um datetime.
max(<listDateOnly>)
Retorna uma data.
max(<listDecimal>)
Retorna um decimal.
max(<decimal>,<decimal>)
Retorna um decimal.
max(<duration>,<duration>)
Retorna uma duração.
max(<dateTime>,<dateTime>)
Retorna um datetime.
max(<dateTimeOnly>,<dateTimeOnly>)
Retorna uma data e hora sem considerar o fuso horário.
max(<integer>,<integer>)
Retorna um inteiro.
max(@event{BarBeacon.inventory},5)
max([10,3,8])
Retorna 10.
max([10,null,8])
Retorna 10.
min min
Retorna o valor mínimo entre um conjunto de expressões, fornecido como uma lista ou duas expressões. Valores nulos são ignorados.
min(<parameters>)- listDuration
- listInteger
- listDecimal
- listDateTime
- listDateTimeOnly
- listDateOnly
- duração
- inteiro
- decimal
- dateTime
- dateTimeOnly
min(<listDuration>)
Retorna uma duração.
min(<listInteger>)
Retorna uma duração.
min(<listDateTimeOnly>)
Retorna uma data e hora sem considerar o fuso horário.
min(<listDateTime>)
Retorna um datetime.
min(<listDateOnly>)
Retorna uma data.
min(<listDecimal>)
Retorna um decimal.
min(<decimal>,<decimal>)
Retorna um decimal.
min(<duration>,<duration>)
Retorna uma duração.
min(<dateTime>,<dateTime>)
Retorna um datetime.
min(<dateTimeOnly>,<dateTimeOnly>)
Retorna uma data e hora sem considerar o fuso horário.
min(<integer>,<integer>)
Retorna um inteiro.
min(@event{BarBeacon.inventory},5)
min([10,3,8])
Retorna 3.
min([10,null,8])
Retorna 8.
sum sum
Retorna a soma dos valores de um conjunto de expressões. Valores nulos são ignorados.
sum(<parameters>)- listInteger
- listDecimal
- duração
- inteiro
- decimal
sum(<listDecimal>)
Retorna um decimal.
sum(<listInteger>)
Retorna um inteiro.
sum(<integer>,<integer>)
Retorna um inteiro.
sum(<decimal>,<decimal>)
Retorna um decimal.
sum(@event{BarBeacon.inventory},5)
sum([10,3,8])
Retorna 21.
sum([10.5,null,8.1])
Retorna 18,6.
This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.
For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.
- TL;DR: This page documents all aggregation functions available in AJO journey expressions, covering how to compute averages, sums, min/max values, counts, and distinct counts over lists and arrays.
Intents:
- Calculate the average of a list of numeric values using
avg - Sum numeric values in a list or from event fields using
sum - Find the minimum or maximum value in a list using
minormax - Count non-null, null-only, or all elements in a list using
count,countOnlyNull, orcountWithNull - Count distinct values in a list, with or without nulls, using
distinctCountordistinctCountWithNull - Filter unique objects in a listObject by a specific key attribute using
distinctCountwith a key parameter
Glossary:
- listObject: A list of complex objects (field references); cannot contain null objects (product-specific)
- listAny: A list of any supported scalar type (string, boolean, integer, decimal, duration, dateTime, dateTimeOnly, dateOnly) (product-specific)
- Null value: An absent or undefined element in a list; most aggregation functions ignore nulls unless the function explicitly handles them (e.g.,
countOnlyNull,countWithNull,distinctCountWithNull)
Guardrails:
countOnlyNull,countWithNull, anddistinctCountWithNulldo not support the<listObject>parameter typedistinctCounton alistObjectrequires the list to be a field reference, not an inline literalcounton alistObjectrequires the list to be a field reference; a listObject cannot contain null objects
Terminology:
- Canonical name: Aggregation functions — Acronym: none — variants: aggregate functions, collection functions
- Synonyms: “count” = “count non-null elements”; “countWithNull” = “count all elements including nulls”
- Do not confuse: “distinctCount” (ignores nulls) ≠ “distinctCountWithNull” (includes nulls as a distinct value)
FAQ:
- Q: Does
avginclude null values in its calculation? — No,avgignores null values automatically. - Q: What is the difference between
countandcountWithNull? —countexcludes null values from the total, whilecountWithNullcounts every element including nulls. - Q: Can I use
countOnlyNullon a listObject? — No,<listObject>is not supported bycountOnlyNull,countWithNull, ordistinctCountWithNull. - Q: How do I count distinct objects in an array based on a specific attribute? — Use
distinctCount(@event{...}, "attributeName")providing the key attribute name as the second parameter. - Q: What does
maxreturn when the list contains nulls? —maxignores null values and returns the maximum among the non-null elements.