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.
avg(<parameter>)Types pris en charge :
- listInteger
- listDecimal
- décimal
- entier
avg(<listInteger>)
avg(<listDecimal>)
avg(<decimal>,<decimal>)
avg(<decimal>,<integer>)
avg(<integer>,<decimal>)
avg(<integer>,<integer>)
Renvoie une valeur décimale.
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 ».
count(<listAny>)
count(<listObject>)
| 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. |
count(<listAny>)
Renvoie un entier.
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.
countOnlyNull(<listAny>)| table 0-row-2 1-row-2 | |
|---|---|
| Paramètre | Type |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly |
countOnlyNull(<listAny>)
Renvoie un entier.
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 ».
countWithNull(<listAny>)| table 0-row-2 1-row-2 | |
|---|---|
| Paramètre | Type |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly |
countWithNull(<listAny>)
Renvoie un entier.
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 ».
distinctCount(<listAny>)| 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. |
distinctCount(<listAny>)
Renvoie un entier.
distinctCount(<listObject>)
distinctCount(<listObject>,<string>)
Renvoie une liste d’objets.
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 ».
distinctCountWithNull(<listAny>)| table 0-row-2 1-row-2 | |
|---|---|
| Paramètre | Type |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly |
distinctCountWithNull(<listAny>)
Renvoie un entier.
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.
max(<parameter>)- listDuration
- listInteger
- listDecimal
- listDateTime
- listDateTimeOnly
- listDateOnly
- duration
- Entier
- Décimal
- dateTime
- dateTimeOnly
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.
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.
min(<parameters>)- listDuration
- listInteger
- listDecimal
- listDateTime
- listDateTimeOnly
- listDateOnly
- duration
- Entier
- Décimal
- dateTime
- dateTimeOnly
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.
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.
sum(<parameters>)- listInteger
- listDecimal
- duration
- Entier
- Décimal
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.
sum(@event{BarBeacon.inventory},5)
sum([10,3,8])
Renvoie 21.
sum([10.5,null,8.1])
Renvoie 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.