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:
- Calcola valori statistici da elenchi o matrici (avg, sum, min, max)
- Conta elementi nelle raccolte (count, countOnlyNull, countWithNull), con opzioni per includere o escludere valori Null
- Determina valori univoci nei set di dati (distinctCount, distinctCountWithNull)
- Prendere decisioni basate sui dati in base a metriche calcolate
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.
avg(<parameter>)Tipi supportati:
- listInteger
- listDecimal
- decimale
- intero
avg(<listInteger>)
avg(<listDecimal>)
avg(<decimal>,<decimal>)
avg(<decimal>,<integer>)
avg(<integer>,<decimal>)
avg(<integer>,<integer>)
Restituisce un valore decimale.
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.
count(<listAny>)
count(<listObject>)
| 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. |
count(<listAny>)
Restituisce un numero intero.
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.
countOnlyNull(<listAny>)| table 0-row-2 1-row-2 | |
|---|---|
| Parametro | Tipo |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly |
countOnlyNull(<listAny>)
Restituisce un numero intero.
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.
countWithNull(<listAny>)| table 0-row-2 1-row-2 | |
|---|---|
| Parametro | Tipo |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly |
countWithNull(<listAny>)
Restituisce un numero intero.
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.
distinctCount(<listAny>)| 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. |
distinctCount(<listAny>)
Restituisce un numero intero.
distinctCount(<listObject>)
distinctCount(<listObject>,<string>)
Restituisce un elenco di oggetti.
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.
distinctCountWithNull(<listAny>)| table 0-row-2 1-row-2 | |
|---|---|
| Parametro | Tipo |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly |
distinctCountWithNull(<listAny>)
Restituisce un numero intero.
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.
max(<parameter>)- listDuration
- listInteger
- listDecimal
- listDateTime
- listDateTimeOnly
- listDateOnly
- durata
- intero
- decimale
- dateTime
- dateTimeOnly
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.
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.
min(<parameters>)- listDuration
- listInteger
- listDecimal
- listDateTime
- listDateTimeOnly
- listDateOnly
- durata
- intero
- decimale
- dateTime
- dateTimeOnly
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.
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.
sum(<parameters>)- listInteger
- listDecimal
- durata
- intero
- decimale
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.
sum(@event{BarBeacon.inventory},5)
sum([10,3,8])
Restituisce 21.
sum([10.5,null,8.1])
Restituisce 18,6.
Questa sezione contiene informazioni strutturate che supportano l’interpretazione, il recupero e la risposta alle domande relative a questo argomento.
Per una comprensione completa, queste informazioni devono essere unite alla documentazione su questa pagina. Nessuna delle due origini è progettata per essere indipendente; la pagina descrive la funzione, mentre questa sezione fornisce un contesto aggiuntivo che aiuta a non ambiguare la terminologia, le finalità, l’applicabilità e i vincoli.
- TL;DR: In questa pagina sono documentate tutte le funzioni di aggregazione disponibili nelle espressioni di percorso di AJO, con informazioni su come calcolare medie, somme, valori minimi e massimi, conteggi e conteggi distinti su elenchi e array.
Intenti:
- Calcola la media di un elenco di valori numerici utilizzando
avg - Sommare i valori numerici in un elenco o dai campi evento utilizzando
sum - Trovare il valore minimo o massimo in un elenco utilizzando
minomax - Conteggio di elementi non nulli, null-only o tutti gli elementi in un elenco tramite
count,countOnlyNullocountWithNull - Conta valori distinti in un elenco, con o senza valori Null, utilizzando
distinctCountodistinctCountWithNull - Filtrare oggetti univoci in un listObject in base a un attributo chiave specifico utilizzando
distinctCountcon un parametro chiave
Glossario:
- listObject: un elenco di oggetti complessi (riferimenti campo); non può contenere oggetti null (specifici per prodotto)
- listAny: elenco di qualsiasi tipo scalare supportato (string, boolean, integer, decimal, duration, dateTime, dateTimeOnly, dateOnly) (specifico per prodotto)
- Valore Null: elemento assente o non definito in un elenco. La maggior parte delle funzioni di aggregazione ignora i valori Null a meno che non vengano gestite esplicitamente dalla funzione (ad esempio,
countOnlyNull,countWithNull,distinctCountWithNull)
Guardrail:
countOnlyNull,countWithNulledistinctCountWithNullnon supportano il tipo di parametro<listObject>distinctCountin unlistObjectrichiede che l’elenco sia un riferimento di campo, non un valore letterale in lineacountsu unlistObjectrichiede che l’elenco sia un riferimento di campo; un listObject non può contenere oggetti Null
Terminologia:
- Nome canonico: Funzioni di aggregazione — Acronimo: none — Varianti: funzioni di aggregazione, funzioni di raccolta
- Sinonimi: “count” = “count elementi non null”; “countWithNull” = “count tutti gli elementi compresi i valori Null”
- Non confondere: “distinctCount” (ignora i valori Null) ≠ “distinctCountWithNull” (include i valori Null come valore distinto)
Domande frequenti:
- Q:
avginclude valori Null nel calcolo? — No,avgignora automaticamente i valori Null. - Q: Qual è la differenza tra
countecountWithNull? —countesclude i valori Null dal totale, mentrecountWithNullconta ogni elemento, inclusi i valori Null. - Q: posso utilizzare
countOnlyNullin un listObject? — No,<listObject>non è supportato dacountOnlyNull,countWithNullodistinctCountWithNull. - D: come posso contare oggetti distinti in un array in base a un attributo specifico? — Utilizzare
distinctCount(@event{...}, "attributeName")specificando il nome dell’attributo chiave come secondo parametro. - D: che cosa restituisce
maxquando l’elenco contiene valori Null? —maxignora i valori Null e restituisce il valore massimo tra gli elementi non Null.