Funzioni di aggregazione aggregation-functions

Le funzioni di aggregazione eseguono calcoli su un insieme di valori e restituiscono un singolo risultato riepilogato. Queste funzioni consentono di analizzare i dati all’interno delle espressioni di percorso calcolando le medie, trovando i valori minimi e massimi, contando gli elementi e sommando i valori numerici.

Utilizzare le funzioni di aggregazione quando è necessario:

Le funzioni di aggregazione gestiscono automaticamente i valori Null in base al loro comportamento specifico, semplificando l’utilizzo di dati reali che possono contenere valori mancanti o non definiti.

avg avg

Restituisce il valore medio tra un insieme di espressioni, sotto forma di elenco o di due espressioni. I valori Null vengono ignorati.

Sintassi
avg(<parameter>)
Parametri

Tipi supportati:

  • listInteger
  • listDecimal
  • decimale
  • intero
Firme e tipo restituito

avg(<listInteger>)

avg(<listDecimal>)

avg(<decimal>,<decimal>)

avg(<decimal>,<integer>)

avg(<integer>,<decimal>)

avg(<integer>,<integer>)

Restituisce un valore decimale.

Esempi

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

avg([10,3,8])

Restituisce 7,0.

avg(10.2, 3)

Restituisce 6,6.

conteggio count

Conta gli elementi dell’elenco senza tenere conto dei valori nulli.

Sintassi

count(<listAny>)

count(<listObject>)

Parametri
table 0-row-3 1-row-3
Parametro Tipo Descrizione
listToProcess listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly o listObject Elenco da elaborare. Per listObject, deve essere un riferimento di campo. Un listObject non può contenere un oggetto null.
Firme e tipo restituito

count(<listAny>)

Restituisce un numero intero.

Esempi

count([10,2,10,null])

Restituisce 3.

count(@event{my_event.productListItems})

Restituisce il numero di oggetti nella matrice di oggetti specificata (tipo listObject). Nota: listObject non può contenere un oggetto null

countOnlyNull countOnlyNull

Conta il numero di valori Null nell’elenco.

Sintassi
countOnlyNull(<listAny>)
Parametri
table 0-row-2 1-row-2
Parametro Tipo
listToProcess listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly
Firme e tipo restituito

countOnlyNull(<listAny>)

Restituisce un numero intero.

Esempi

countOnlyNull([10,2,10,null])

Restituisce 1.

Nota: Il parametro <listObject> non è supportato in questa funzione.

countWithNull countWithNull

Conta tutti gli elementi dell’elenco, inclusi i valori Null.

Sintassi
countWithNull(<listAny>)
Parametri
table 0-row-2 1-row-2
Parametro Tipo
listToProcess listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly
Firme e tipo restituito

countWithNull(<listAny>)

Restituisce un numero intero.

Esempi

countWithNull([10,2,10,null])

Restituisce 4.

Nota: Il parametro <listObject> non è supportato in questa funzione.

distinctCount distinctCount

Conta il numero di valori diversi ignorando i valori Null.

Sintassi
distinctCount(<listAny>)
Parametri
table 0-row-3 1-row-3 2-row-3
Parametro Tipo Descrizione
listToProcess listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly o listObject Elenco da elaborare. Per listObject, deve essere un riferimento di campo.
keyAttributeName stringa Questo parametro è facoltativo e solo per listObject. Se il parametro non viene fornito, un oggetto viene considerato duplicato se tutti gli attributi hanno gli stessi valori. In caso contrario, un oggetto viene considerato duplicato se l’attributo specificato ha lo stesso valore.
Firme e tipo restituito

distinctCount(<listAny>)

Restituisce un numero intero.

distinctCount(<listObject>)

distinctCount(<listObject>,<string>)

Restituisce un elenco di oggetti.

Esempi

distinctCount([10,2,10,null])

Restituisce 2.

distinctCount(@event{my_event.productListItems})

Restituisce il numero di oggetti strettamente distinti nella matrice di oggetti specificata (tipo listObject).

distinctCount(@event{my_event.productListItems}, "SKU")

Restituisce il numero di oggetti con un valore di attributo “SKU” distinto{}.

distinctCountWithNull distinctCountWithNull

Conta il numero di valori diversi, inclusi i valori Null.

Sintassi
distinctCountWithNull(<listAny>)
Parametri
table 0-row-2 1-row-2
Parametro Tipo
listToProcess listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly
Firme e tipo restituito

distinctCountWithNull(<listAny>)

Restituisce un numero intero.

Esempi

distinctCountWithNull([10,2,10,null])

Restituisce 3.

Nota: Il parametro <listObject> non è supportato in questa funzione.

max max

Restituisce il valore massimo in un insieme di espressioni, sotto forma di elenco o di due espressioni. I valori Null vengono ignorati.

Sintassi
max(<parameter>)
Parametri
  • listDuration
  • listInteger
  • listDecimal
  • listDateTime
  • listDateTimeOnly
  • listDateOnly
  • durata
  • intero
  • decimale
  • dateTime
  • dateTimeOnly
Firme e tipi restituiti

max(<listDuration>)

Restituisce una durata.

max(<listInteger>)

Restituisce una durata.

max(<listDateTimeOnly>)

Restituisce un valore datetime senza considerare il fuso orario.

max(<listDateTime>)

Restituisce un valore datetime.

max(<listDateOnly>)

Restituisce una data.

max(<listDecimal>)

Restituisce un valore decimale.

max(<decimal>,<decimal>)

Restituisce un valore decimale.

max(<duration>,<duration>)

Restituisce una durata.

max(<dateTime>,<dateTime>)

Restituisce un valore datetime.

max(<dateTimeOnly>,<dateTimeOnly>)

Restituisce un valore datetime senza considerare il fuso orario.

max(<integer>,<integer>)

Restituisce un numero intero.

Esempi

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

max([10,3,8])

Restituisce 10.

max([10,null,8])

Restituisce 10.

min min

Restituisce il valore minimo in un insieme di espressioni, sotto forma di elenco o di due espressioni. I valori Null vengono ignorati.

Sintassi
min(<parameters>)
Parametri
  • listDuration
  • listInteger
  • listDecimal
  • listDateTime
  • listDateTimeOnly
  • listDateOnly
  • durata
  • intero
  • decimale
  • dateTime
  • dateTimeOnly
Firme e tipi restituiti

min(<listDuration>)

Restituisce una durata.

min(<listInteger>)

Restituisce una durata.

min(<listDateTimeOnly>)

Restituisce un valore datetime senza considerare il fuso orario.

min(<listDateTime>)

Restituisce un valore datetime.

min(<listDateOnly>)

Restituisce una data.

min(<listDecimal>)

Restituisce un valore decimale.

min(<decimal>,<decimal>)

Restituisce un valore decimale.

min(<duration>,<duration>)

Restituisce una durata.

min(<dateTime>,<dateTime>)

Restituisce un valore datetime.

min(<dateTimeOnly>,<dateTimeOnly>)

Restituisce un valore datetime senza considerare il fuso orario.

min(<integer>,<integer>)

Restituisce un numero intero.

Esempi

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

min([10,3,8])

Restituisce 3.

min([10,null,8])

Restituisce 8.

sum sum

Restituisce la somma dei valori di un insieme di espressioni. I valori Null vengono ignorati.

Sintassi
sum(<parameters>)
Parametri
  • listInteger
  • listDecimal
  • durata
  • intero
  • decimale
Firme e tipi restituiti

sum(<listDecimal>)

Restituisce un valore decimale.

sum(<listInteger>)

Restituisce un numero intero.

sum(<integer>,<integer>)

Restituisce un numero intero.

sum(<decimal>,<decimal>)

Restituisce un valore decimale.

Esempi

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

sum([10,3,8])

Restituisce 21.

sum([10.5,null,8.1])

Restituisce 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