# Aggr - funzione per grafici

Aggr() restituisce una matrice di valori per l'espressione calcolata in base alla dimensione o alle dimensioni dichiarate. Ad esempio, il valore massimo delle vendite, per cliente, per regione.

La funzione Aggr è utilizzata per le aggregazioni nidificate, in cui il relativo primo parametro (l'aggregazione interna) è calcolato una volta per valore dimensionale. Le dimensioni sono specificate nel secondo parametro (e nei parametri successivi).

Inoltre, la funzione Aggr deve essere racchiusa in una funzione di aggregazione esterna, utilizzando la gamma di risultati dalla funzione Aggr come input per l'aggregazione in cui risulta nidificata.

Sintassi:

Aggr({SetExpression}[DISTINCT] [NODISTINCT ] expr, StructuredParameter{, StructuredParameter})

Tipo di dati restituiti: duale

Argomenti:

Argomenti

| Argomento | Descrizione |
| --- | --- |
| expr | Un'espressione costituita da una funzione di aggregazione. Per impostazione predefinita, la funzione di aggregazione aggrega la serie di possibili record definiti dalla selezione. |
| StructuredParameter | StructuredParameter è composto da una dimensione e, facoltativamente, da criteri di ordinamento nel formato: `(Dimension(Sort-type, Ordering))`<br><br>La dimensione è un campo singolo e non può essere un'espressione. Viene utilizzata per determinare la matrice di valori per cui viene calcolata l'espressione Aggr.<br><br>Se sono inclusi criteri di ordinamento, la matrice di valori creata dalla funzione Aggr, calcolata per la dimensione, verrà ordinata. Questo è importante quando l'ordinamento influisce sul risultato dell'espressione in cui è racchiusa la funzione Aggr.<br><br>Per informazioni dettagliate su come utilizzare i criteri di ordinamento, vedere [Aggiunta di criteri di ordinamento alla dimensione nel parametro strutturato](https://help.qlik.com/it-IT/sense/May2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/aggr.htm#Sorting). |
| SetExpression | Per impostazione predefinita, la funzione di aggregazione aggrega la serie di possibili record definiti dalla selezione. È possibile definire una serie di record alternativa mediante un'espressione Set Analysis. |
| DISTINCT | Se l'argomento dell'espressione è preceduto dal qualificatore distinct o se non viene utilizzato alcun qualificatore, ogni combinazione distinta di valori di dimensione restituirà un solo valore. Questa è la modalità normale in cui vengono create le aggregazioni; ciascuna combinazione distinta di valori di dimensione restituisce una linea nel grafico. |
| NODISTINCT | Se l'argomento dell'espressione è preceduto dal qualificatore nodistinct, ogni combinazione di valori di dimensione può restituire più valori, a seconda della struttura dati sottostante. Se esiste una sola dimensione, la funzione aggr restituirà una matrice con un numero di elementi uguale al numero di righe presenti nei dati sorgente. |

Le funzioni di aggregazione di base, quali Sum, Min e Avg, restituiscono un singolo valore numerico, mentre la funzione Aggr() può essere paragonata alla creazione di un set di risultati temporaneo (una tabella virtuale) su cui è possibile effettuare un'altra aggregazione. Ad esempio, è possibile calcolare il valore medio delle vendite sommando le vendite per cliente in un'istruzione Aggr() e calcolando quindi la media dei risultati sommati: Avg(TOTAL Aggr(Sum(Sales),Customer)).

Nota di suggerimentoÈ possibile utilizzare la funzione Aggr() nelle dimensioni calcolate se si desidera creare aggregazioni di grafici nidificate su più livelli.

Limiti:

Ogni dimensione presente in una funzione Aggr() deve corrispondere a un campo singolo e non può essere un'espressione (dimensione calcolata).

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/aggr.htm)Aggiunta di criteri di ordinamento alla dimensione nel parametro strutturato

Nella sua forma di base, l'argomento StructuredParameter nella sintassi della funzione Aggr è una dimensione singola. L'espressione Aggr(Sum(Sales, Month)) trova il valore totale delle vendite per ogni mese. Tuttavia, se viene inclusa in un'altra funzione di aggregazione, potrebbero venire restituiti risultati imprevisti, a meno che non vengano utilizzati i criteri di ordinamento. Ciò è dovuto al fatto che alcune dimensioni possono essere ordinate con criterio numerico o con criterio alfabetico e così via.

Nell'argomento StructuredParameter all'interno della funzione Aggr è possibile specificare criteri di ordinamento per la dimensione nell'espressione. In questo modo si impone un ordinamento alla tabella virtuale prodotta dalla funzione Aggr.

La sintassi dell'argomento StructuredParameter è la seguente:

(FieldName, (Sort-type, Ordering))

I parametri strutturati possono essere nidificati:

(FieldName, (FieldName2, (Sort-type, Ordering)))

Sort-type può essere: NUMERIC, TEXT, FREQUENCY o LOAD\_ORDER.

I tipi di ordinamento associati a ciascun Sort-type sono i seguenti:

Tipi di ordinamento consentiti

| Sort-type | Tipi di ordinamento consentiti |
| --- | --- |
| NUMERIC | ASCENDING, DESCENDING o REVERSE |
| TEXT | ASCENDING, A2Z, DESCENDING, REVERSE o Z2A |
| FREQUENCY | DESCENDING, REVERSE o ASCENDING |
| LOAD\_ORDER | ASCENDING, ORIGINAL, DESCENDING o REVERSE |

I tipi di ordinamento REVERSE e DESCENDING sono equivalenti.

Per Sort-type uguale a TEXT, i tipi di ordinamento ASCENDING e A2Z sono equivalenti e DESCENDING, REVERSE e Z2A sono equivalenti.

Per Sort-type uguale a LOAD\_ORDER, i tipi di ordinamento ASCENDING e ORIGINAL sono equivalenti.

## Esempi: espressioni del grafico che utilizzano Aggr

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/aggr.htm)

#### Esempi: espressioni del grafico

### Esempio 1 espressione del grafico

#### Script di caricamento

Caricare i dati seguenti come un caricamento inline nell'editor di caricamento dati per creare l'esempio di espressione del grafico in basso.

```
ProductData:

LOAD * inline [
Customer|Product|UnitSales|UnitPrice
Astrida|AA|4|16
Astrida|AA|10|15
Astrida|BB|9|9
Betacab|BB|5|10
Betacab|CC|2|20
Betacab|DD|25|25
Canutility|AA|8|15
Canutility|CC|0|19
] (delimiter is '|');
```

Per ulteriori informazioni sull'utilizzo di caricamenti inline, vedere [Utilizzo dei caricamenti inline per caricare i dati](https://help.qlik.com/it-IT/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

#### Espressione del grafico

Creare una visualizzazione KPI in un foglio di Qlik Sense. Aggiungere l'espressione seguente al KPI, come misura:

`Avg(Aggr(Sum(UnitSales*UnitPrice), Customer))`

#### Risultato

376.7

#### Spiegazione

L'espressione `Aggr(Sum(UnitSales*UnitPrice), Customer)` trova il valore totale delle vendite per Customer e restituisce una matrice di valori: 295, 715 e 120 per i tre valori di Customer.

In modo efficiente, è stato creato un elenco temporaneo di valori, senza una tabella esplicita o una colonna contenente tali valori.

Questi valori vengono utilizzati come input nella funzione Avg() per trovare il valore medio delle vendite, 376.7.

Per ulteriori informazioni sulle espressioni, vedere [Utilizzo di espressioni nelle visualizzazioni](https://help.qlik.com/it-IT/sense/May2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/use-expressions-in-visualizations.htm).

### Esempio 2 espressione del grafico

#### Script di caricamento

Caricare i dati seguenti come un caricamento inline nell'editor di caricamento dati per creare l'esempio di espressione del grafico in basso.

```
ProductData:

LOAD * inline [
Customer|Product|UnitSales|UnitPrice
Astrida|AA|4|16
Astrida|AA|10|15
Astrida|BB|10|15
Astrida|BB|9|9
Betacab|BB|5|10
Betacab|BB|7|12
Betacab|CC|2|22
Betacab|CC|4|20
Betacab|DD|25|25
Canutility|AA|8|15
Canutility|AA|5|11
Canutility|CC|0|19
] (delimiter is '|');
```

Per ulteriori informazioni sull'utilizzo di caricamenti inline, vedere [Utilizzo dei caricamenti inline per caricare i dati](https://help.qlik.com/it-IT/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

#### Espressione del grafico

Creare una visualizzazione tabella in un foglio Qlik Sense con Customer, Product, UnitPrice e UnitSales come dimensioni. Aggiungere la seguente espressione alla tabella come misura:

`Aggr(NODISTINCT Max(UnitPrice), Customer, Product)`

#### Risultato

| Customer | Product | UnitPrice | UnitSales | Aggr(NODISTINCT Max(UnitPrice), Customer, Product) |
| --- | --- | --- | --- | --- |
| Astrida | AA | 15 | 10 | 16 |
| Astrida | AA | 16 | 4 | 16 |
| Astrida | BB | 9 | 9 | 15 |
| Astrida | BB | 15 | 10 | 15 |
| Betacab | BB | 10 | 5 | 12 |
| Betacab | BB | 12 | 7 | 12 |
| Betacab | CC | 20 | 4 | 22 |
| Betacab | CC | 22 | 2 | 22 |
| Betacab | DD | 25 | 25 | 25 |
| Canutility | AA | 11 | 5 | 15 |
| Canutility | AA | 15 | 8 | 15 |
| Canutility | CC | 19 | 0 | 19 |

#### Spiegazione

Una matrice di valori: 16, 16, 15, 15, 12, 12, 22, 22, 25, 15, 15 e 19. Il qualificatore nodistinct indica che la matrice contiene un elemento per ogni riga dei dati sorgente: ognuno è il valore UnitPrice massimo per ogni valore Customer e Product.

### Esempio 3 espressione del grafico

#### Script di caricamento

Caricare i dati seguenti come un caricamento inline nell'editor caricamento dati per creare l'esempio di espressione del grafico in basso.

```
Set vNumberOfOrders = 1000;

OrderLines:
Load
	RowNo() as OrderLineID,
	OrderID,
	OrderDate,
	Round((Year(OrderDate)-2005)*1000*Rand()*Rand()*Rand1) as Sales
	While Rand()<=0.5 or IterNo()=1;
Load * Where OrderDate<=Today();
Load 
	Rand() as Rand1,
	Date(MakeDate(2013)+Floor((365*4+1)*Rand())) as OrderDate,
	RecNo() as OrderID
	Autogenerate vNumberOfOrders;
    
Calendar:
Load distinct
	Year(OrderDate) as Year,
	Month(OrderDate) as Month,
	OrderDate 
	Resident OrderLines;
```

#### Espressioni del grafico

Crear una visualizzazione tabella in un foglio Qlik Sense con Anno e Mese come dimensioni. Aggiungere alla tabella le espressioni seguenti come misure:

* `Sum(Sales)`
* `Sum(Aggr( Rangesum(Above(Sum(Sales),0,12)), (Year, (Numeric, Ascending)), (Month, (Numeric, Ascending)) ))` etichettato come Structured Aggr() nella tabella.

#### Risultato

| Year | Month | Sum(Sales) | Structured Aggr() |
| --- | --- | --- | --- |
| 2013 | Jan | 53495 | 53495 |
| 2013 | Feb | 48580 | 102075 |
| 2013 | Mar | 25651 | 127726 |
| 2013 | Apr | 36585 | 164311 |
| 2013 | May | 61211 | 225522 |
| 2013 | Jun | 23689 | 249211 |
| 2013 | Jul | 42311 | 291522 |
| 2013 | Aug | 41913 | 333435 |
| 2013 | Sep | 28886 | 362361 |
| 2013 | Oct | 25977 | 388298 |
| 2013 | Nov | 44455 | 432753 |
| 2013 | Dec | 64144 | 496897 |
| 2014 | Jan | 67775 | 67775 |

#### Spiegazione

Questo esempio visualizza i valori aggregati su un periodo di dodici mesi per ogni anno in ordine cronologico crescente, da cui i parametri strutturati (Numeric, Ascending) parte dell'espressione Aggr(). Sono richieste due dimensioni specifiche come parametri strutturati: Year e Month, con ordinamento (1) Year (numerico) e (2) Month (numerico). Queste due dimensioni devono essere utilizzate nella visualizzazione tabella o grafico. Ciò risulta necessario affinché l'elenco dimensioni della funzione Aggr() corrisponda alle dimensioni dell'oggetto utilizzato nella visualizzazione.

È possibile confrontare le differenze tra queste misure in una tabella o in grafici lineari separati:

* `Sum(Aggr(
  	Rangesum(Above(Sum(Sales),0,12)), 
  	(Year), 
  	(Month)
  	))`
* `Sum(Aggr(
  	Rangesum(Above(Sum(Sales),0,12)), 
  	(Year, (Numeric, Ascending)), 
  	(Month, (Numeric, Ascending))
  	))`

Dovrebbe risultare evidente che solo l'ultima espressione esegue l'accumulo desiderato dei valori aggregati.

## Ulteriori informazioni

* [Funzioni di aggregazione di base](https://help.qlik.com/it-IT/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/AggregationFunctions/basic-aggregation-functions.htm)
* [Analisi di gruppo](https://help.qlik.com/it-IT/sense/May2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)