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:

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.

Sintaxe
avg(<parameter>)
Parâmetros

Tipos suportados:

  • listInteger
  • listDecimal
  • decimal
  • inteiro
Assinaturas e tipo retornado

avg(<listInteger>)

avg(<listDecimal>)

avg(<decimal>,<decimal>)

avg(<decimal>,<integer>)

avg(<integer>,<decimal>)

avg(<integer>,<integer>)

Retorna um decimal.

Exemplos

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.

Sintaxe

count(<listAny>)

count(<listObject>)

Parâmetros
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.
Assinaturas e tipo retornado

count(<listAny>)

Retorna um inteiro.

Exemplos

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.

Sintaxe
countOnlyNull(<listAny>)
Parâmetros
table 0-row-2 1-row-2
Parâmetro Tipo
listToProcess listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly
Assinaturas e tipo retornado

countOnlyNull(<listAny>)

Retorna um inteiro.

Exemplos

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.

Sintaxe
countWithNull(<listAny>)
Parâmetros
table 0-row-2 1-row-2
Parâmetro Tipo
listToProcess listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly
Assinaturas e tipo retornado

countWithNull(<listAny>)

Retorna um inteiro.

Exemplos

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.

Sintaxe
distinctCount(<listAny>)
Parâmetros
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.
Assinaturas e tipo retornado

distinctCount(<listAny>)

Retorna um inteiro.

distinctCount(<listObject>)

distinctCount(<listObject>,<string>)

Retorna uma lista de objetos.

Exemplos

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.

Sintaxe
distinctCountWithNull(<listAny>)
Parâmetros
table 0-row-2 1-row-2
Parâmetro Tipo
listToProcess listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly
Assinaturas e tipo retornado

distinctCountWithNull(<listAny>)

Retorna um inteiro.

Exemplos

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.

Sintaxe
max(<parameter>)
Parâmetros
  • listDuration
  • listInteger
  • listDecimal
  • listDateTime
  • listDateTimeOnly
  • listDateOnly
  • duração
  • inteiro
  • decimal
  • dateTime
  • dateTimeOnly
Assinaturas e tipos retornados

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.

Exemplos

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.

Sintaxe
min(<parameters>)
Parâmetros
  • listDuration
  • listInteger
  • listDecimal
  • listDateTime
  • listDateTimeOnly
  • listDateOnly
  • duração
  • inteiro
  • decimal
  • dateTime
  • dateTimeOnly
Assinaturas e tipos retornados

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.

Exemplos

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.

Sintaxe
sum(<parameters>)
Parâmetros
  • listInteger
  • listDecimal
  • duração
  • inteiro
  • decimal
Assinaturas e tipos retornados

sum(<listDecimal>)

Retorna um decimal.

sum(<listInteger>)

Retorna um inteiro.

sum(<integer>,<integer>)

Retorna um inteiro.

sum(<decimal>,<decimal>)

Retorna um decimal.

Exemplos

sum(@event{BarBeacon.inventory},5)

sum([10,3,8])

Retorna 21.

sum([10.5,null,8.1])

Retorna 18,6.

AI Knowledge Reference

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 min or max
  • Count non-null, null-only, or all elements in a list using count, countOnlyNull, or countWithNull
  • Count distinct values in a list, with or without nulls, using distinctCount or distinctCountWithNull
  • Filter unique objects in a listObject by a specific key attribute using distinctCount with 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, and distinctCountWithNull do not support the <listObject> parameter type
  • distinctCount on a listObject requires the list to be a field reference, not an inline literal
  • count on a listObject requires 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 avg include null values in its calculation? — No, avg ignores null values automatically.
  • Q: What is the difference between count and countWithNull?count excludes null values from the total, while countWithNull counts every element including nulls.
  • Q: Can I use countOnlyNull on a listObject? — No, <listObject> is not supported by countOnlyNull, countWithNull, or distinctCountWithNull.
  • 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 max return when the list contains nulls?max ignores null values and returns the maximum among the non-null elements.
recommendation-more-help
journey-optimizer-help