Avg

<< Fare clic per visualizzazione il sommario >>

Percorso:  Il linguaggio OEL > Funzioni >

Avg

Restituisce la media dei valori forniti tramite lista.

 

Funzione

Avg( IList list, String projectionExpression, String selectionExpression)

 

La funzione può essere utilizzata nelle seguenti modalità:

1) Avg(IList list)

2) Avg(IList list, String projectionExpression)

3) Avg(IList list, String projectionExpression, String selectionExpression)

 

Output

Nome

Descrizione

Tipo

returnValue

Media matematica tra tutti i valori della lista.

Float

 

Commenti

La funzione Avg calcola la media tra i valori numerici forniti. Per farlo, tutti gli elementi devono essere della stessa tipologia numerica e devono avere l'interfaccia comparabile, altrimenti la funzione restituirà un errore. Si può utilizzare con un oggetto ArrayValue o IList. Nel caso in cui gli elementi della lista siano dati strutturati o collegamenti estesi, è possibile specificare delle espressioni di proiezione e opzionalmente selezione. Nel caso in cui gli elementi della lista siano scalari, è possibile specificare opzionalmente delle espressioni di selezione. Quando si esegue un'operazione matematica con i numeri, il risultato ottenuto è di tipo Float e va assegnato ad un campo di tipo numerico decimale o numerico a virgola mobile.

Se list è di tipo lista di collegamenti viene restituito errore.

 

Modalità 1)

Avg( IList list)

 

Input

Nome

Descrizione

Tipo

Opzionale

list

Lista di partenza: deve essere una lista di elementi numerici.

IList

 

Output

Nome

Descrizione

Tipo

Opzionale

returnValue

Media matematica tra tutti i valori della lista.

Float

 

 

 

 

Esempio

Data una lista di oggetti di tipo numerico intero ListaNum, vogliamo calcolare la media matematica degli elementi.

Avg(#data.Fields['ListaNum'])

 


 

Modalità 2)

Avg(IList list, String projectionExpression)

 

Input

Nome

Descrizione

Tipo

Opzionale

list

Lista di partenza: può essere una lista dati strutturati o collegamenti estesi con un campo numerico.

IList

 

projectionExpression

Espressione di proiezione, utile ad individuare una colonna di valori della lista su cui calcolare la media matematica.

String

 

Output

Nome

Descrizione

Tipo

Opzionale

returnValue

Media matematica tra tutti i valori della lista.

Float

 

 

Commenti

L'espressione di proiezione è obbligatoria e serve ad individuare, data una lista di strutture, su quale campo di tipo numerico si vuole ottenere la media matematica. Se le strutture della lista sono eterogenee, l'espressione viene applicata ai dati strutturati e collegamenti estesi che possiedono il campo. L'espressione di proiezione, come variabile di contesto, fa riferimento ai campi delle strutture dati che compongono la lista list. Per utilizzare nell'espressione di proiezione una funzione della libreria OEL è necessario utilizzare il contesto #oel. Per invece riferirsi all'elemento della lista in valutazione occorre utilizzare la variabile di contesto #this. Per maggiori informazioni sulle espressioni di proiezione consultare ProjectionList.

 

Esempio

Dato un modello di tipo Dati con un campo di tipo lista di dati strutturati, ognuno dei quali contiene un campo denominato Importo. Si vuole ottenere il valore medio di tutti i valori riportati nel campo Importo.

Avg(#data.Fields['ListaDatiStrutturati'],'Fields[''Importo'']')

 


 

Modalità 3)

Avg(IList list, String projectionExpression, String selectionExpression)

 

Input

Nome

Descrizione

Tipo

Opzionale

list

Lista di partenza: può essere una lista di scalari, una lista dati strutturati o una lista di collegamenti estesi con un campo numerico.

IList

 

projectionExpression

Espressione di proiezione, utile ad individuare una colonna di valori della lista su cui calcolare la media matematica.

Per le liste di scalari specificare null.

String

 

selectionExpression

Espressione di selezione, utile ad individuare un sottoinsieme di righe della lista.

String

 

Output

Nome

Descrizione

Tipo

Opzionale

returnValue

Media matematica tra tutti i valori della lista.

Float

 

 

Commenti

L'espressione di proiezione projectionExpression è obbligatoria per le liste di dati strutturati e collegamenti estesi ed è utile ad individuare su quale campo numerico di esse si vuole ottenere la media matematica. Se le strutture della lista sono eterogenee, l'espressione viene applicata ai dati strutturati e collegamenti estesi che possiedono il campo.

L'espressione di selezione selectionExpression può essere utilizzata per le liste di scalari, dati strutturati e collegamenti estesi ed è utile ad applicare un filtro sugli elementi della lista. Se selectionExpression viene fornita, il campo selezionato non deve essere necessariamente numerico, ma può essere di qualunque tipo.

Per le liste di dati strutturati e collegamenti estesi in cui sono specificate entrambe le espressioni projectionExpression e selectionExpression, la funzione esegue su list la selezione e al risultato ottenuto applica la proiezione.

Le espressioni di proiezione e selezione, come variabile di contesto, fanno riferimento ai dati che compongono la lista list. Per utilizzare in un'espressione una funzione della libreria OEL è necessario utilizzare il contesto #oel. Per invece riferirsi all'elemento della lista in valutazione occorre utilizzare la variabile di contesto #this. Per maggiori informazioni sulle espressioni di proiezione consultare ProjectionList. Per maggiori informazioni sulle espressioni di selezione consultare SelectionList.

 

Esempio 1

Dato un modello di tipo Dati con un campo di tipo lista di numerici ListaNum, si vuole ottenere la media matematica di tutti i valori riportati nella lista con valore superiore a 10.

Avg(#data.Fields['ListaNum'],null, '#this>10')

 

Esempio 2

Dato un modello di tipo Dati con un campo di tipo lista di dati strutturati, ognuno dei quali contiene un campo denominato Importo. Si vuole ottenere il valore medio di tutti i valori riportati nel campo Importo con valore superiore a 10.

Avg(#data.Fields['ListaDatiStrutturati'],'Fields[''Importo'']', 'Fields[''Importo'']>10')