Fonctions d’agrégation aggregation-functions

Les fonctions d’agrégation effectuent des calculs sur un ensemble de valeurs et renvoient un seul résultat résumé. Ces fonctions vous permettent d’analyser les données dans vos expressions de parcours en calculant des moyennes, en recherchant des valeurs minimales et maximales, en comptant les éléments et en additionnant les valeurs numériques.

Utilisez des fonctions d’agrégation lorsque vous devez :

  • calculer des valeurs statistiques à partir de listes ou de tableaux (avg, sum, min, max) ;
  • compter les éléments dans les collections (count, countOnlyNull, countWithNull), avec des options pour inclure ou exclure les valeurs nulles ;
  • déterminer des valeurs uniques dans les jeux de données (distinctCount, distinctCountWithNull).
  • Prendre des décisions axées sur les données en fonction de mesures calculées

Les fonctions d’agrégation gèrent automatiquement les valeurs nulles en fonction de leur comportement spécifique, ce qui facilite l’utilisation des données du monde réel qui peuvent contenir des valeurs manquantes ou non définies.

avg avg

Renvoie la valeur moyenne d’un ensemble d’expressions, exprimée sous la forme d’une liste ou de deux expressions. Les valeurs « null » sont ignorées.

Syntaxe
avg(<parameter>)
Paramètres

Types pris en charge :

  • listInteger
  • listDecimal
  • décimal
  • entier
Signatures et type renvoyé

avg(<listInteger>)

avg(<listDecimal>)

avg(<decimal>,<decimal>)

avg(<decimal>,<integer>)

avg(<integer>,<decimal>)

avg(<integer>,<integer>)

Renvoie une valeur décimale.

Exemples

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

avg([10,3,8])

Renvoie 7,0.

avg(10.2, 3)

Renvoie 6,6.

count count

Compte les éléments de la liste sans tenir compte des valeurs « null ».

Syntaxe

count(<listAny>)

count(<listObject>)

Paramètres
table 0-row-3 1-row-3
Paramètre Type Description
listToProcess listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly, or listObject Liste à traiter. Pour listObject, il doit s’agir d’une référence de champ. Un listObject ne peut pas contenir d’objet null.
Signatures et type renvoyé

count(<listAny>)

Renvoie un entier.

Exemples

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

Renvoie 3.

count(@event{my_event.productListItems})

Renvoie le nombre d’objets dans le tableau d’objets donné (type listObject). Remarque : un objet listObject ne peut pas contenir d’objet null.

countOnlyNull countOnlyNull

Compte le nombre de valeurs « null » dans la liste.

Syntaxe
countOnlyNull(<listAny>)
Paramètres
table 0-row-2 1-row-2
Paramètre Type
listToProcess listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly
Signatures et type renvoyé

countOnlyNull(<listAny>)

Renvoie un entier.

Exemples

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

Renvoie 1.

Remarque : le paramètre <listObject> n’est pas pris en charge dans cette fonction.

countWithNull countWithNull

Compte tous les éléments de la liste, y compris les valeurs « null ».

Syntaxe
countWithNull(<listAny>)
Paramètres
table 0-row-2 1-row-2
Paramètre Type
listToProcess listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly
Signatures et type renvoyé

countWithNull(<listAny>)

Renvoie un entier.

Exemples

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

Renvoie 4.

Remarque : le paramètre <listObject> n’est pas pris en charge dans cette fonction.

distinctCount distinctCount

Compte le nombre de valeurs différentes en ignorant les valeurs « null ».

Syntaxe
distinctCount(<listAny>)
Paramètres
table 0-row-3 1-row-3 2-row-3
Paramètre Type Description
listToProcess listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly, or listObject Liste à traiter. Pour listObject, il doit s’agir d’une référence de champ.
keyAttributeName Chaîne Ce paramètre est facultatif et uniquement pour listObject. Si le paramètre n’est pas fourni, un objet est considéré comme dupliqué si tous les attributs ont les mêmes valeurs. Dans le cas contraire, un objet est considéré comme dupliqué si l’attribut donné a la même valeur.
Signatures et type renvoyé

distinctCount(<listAny>)

Renvoie un entier.

distinctCount(<listObject>)

distinctCount(<listObject>,<string>)

Renvoie une liste d’objets.

Exemples

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

Renvoie 2.

distinctCount(@event{my_event.productListItems})

Renvoie le nombre d’objets strictement distincts dans le tableau d’objets donné (type listObject).

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

Renvoie le nombre d’objets ayant une valeur d’attribut {} « SKU » distincte.

distinctCountWithNull distinctCountWithNull

Compte le nombre de valeurs différentes, y compris les valeurs « null ».

Syntaxe
distinctCountWithNull(<listAny>)
Paramètres
table 0-row-2 1-row-2
Paramètre Type
listToProcess listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly
Signatures et type renvoyé

distinctCountWithNull(<listAny>)

Renvoie un entier.

Exemples

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

Renvoie 3.

Remarque : le paramètre <listObject> n’est pas pris en charge dans cette fonction.

max max

Renvoie la valeur maximale d’un ensemble d’expressions, exprimée sous la forme d’une liste ou de deux expressions. Les valeurs « null » sont ignorées.

Syntaxe
max(<parameter>)
Paramètres
  • listDuration
  • listInteger
  • listDecimal
  • listDateTime
  • listDateTimeOnly
  • listDateOnly
  • duration
  • Entier
  • Décimal
  • dateTime
  • dateTimeOnly
Signatures et types renvoyés

max(<listDuration>)

Renvoie une durée.

max(<listInteger>)

Renvoie une durée.

max(<listDateTimeOnly>)

Renvoie une date et une heure sans prendre en compte le fuseau horaire.

max(<listDateTime>)

Renvoie une date et une heure.

max(<listDateOnly>)

Renvoie une date.

max(<listDecimal>)

Renvoie une valeur décimale.

max(<decimal>,<decimal>)

Renvoie une valeur décimale.

max(<duration>,<duration>)

Renvoie une durée.

max(<dateTime>,<dateTime>)

Renvoie une date et une heure.

max(<dateTimeOnly>,<dateTimeOnly>)

Renvoie une date et une heure sans prendre en compte le fuseau horaire.

max(<integer>,<integer>)

Renvoie un entier.

Exemples

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

max([10,3,8])

Renvoie 10.

max([10,null,8])

Renvoie 10.

min min

Renvoie la valeur minimale d’un ensemble d’expressions, exprimée sous la forme d’une liste ou de deux expressions. Les valeurs « null » sont ignorées.

Syntaxe
min(<parameters>)
Paramètres
  • listDuration
  • listInteger
  • listDecimal
  • listDateTime
  • listDateTimeOnly
  • listDateOnly
  • duration
  • Entier
  • Décimal
  • dateTime
  • dateTimeOnly
Signatures et types renvoyés

min(<listDuration>)

Renvoie une durée.

min(<listInteger>)

Renvoie une durée.

min(<listDateTimeOnly>)

Renvoie une date et une heure sans prendre en compte le fuseau horaire.

min(<listDateTime>)

Renvoie une date et une heure.

min(<listDateOnly>)

Renvoie une date.

min(<listDecimal>)

Renvoie une valeur décimale.

min(<decimal>,<decimal>)

Renvoie une valeur décimale.

min(<duration>,<duration>)

Renvoie une durée.

min(<dateTime>,<dateTime>)

Renvoie une date et une heure.

min(<dateTimeOnly>,<dateTimeOnly>)

Renvoie une date et une heure sans prendre en compte le fuseau horaire.

min(<integer>,<integer>)

Renvoie un entier.

Exemples

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

min([10,3,8])

Renvoie 3.

min([10,null,8])

Renvoie 8.

sum sum

Renvoie la somme des valeurs d’un ensemble d’expressions. Les valeurs « null » sont ignorées.

Syntaxe
sum(<parameters>)
Paramètres
  • listInteger
  • listDecimal
  • duration
  • Entier
  • Décimal
Signatures et types renvoyés

sum(<listDecimal>)

Renvoie une valeur décimale.

sum(<listInteger>)

Renvoie un entier.

sum(<integer>,<integer>)

Renvoie un entier.

sum(<decimal>,<decimal>)

Renvoie une valeur décimale.

Exemples

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

sum([10,3,8])

Renvoie 21.

sum([10.5,null,8.1])

Renvoie 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