# Aggr - diagramfunctie

Aggr() retourneert een reeks van waarden voor de uitdrukking die is berekend via de opgegeven dimensie of dimensies. Bijvoorbeeld de maximale waarden van verkopen, per klant, per regio.

De functie Aggr wordt gebruikt voor geneste aggregaties, waarbij de eerste parameter (de binnenste aggregatie) één keer per dimensiewaarde wordt berekend. De dimensies worden opgegeven in de tweede parameter (en opeenvolgende parameters).

Bovendien moet de functie Aggr worden ingesloten in een buitenste aggregatiefunctie met behulp van de reeks resultaten van de functie Aggr als invoer voor de aggregatie waarin de functie is genest.

Syntaxis:

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

Retourgegevenstypen: dubbele waarde

Argumenten:

Argumenten

| Argument | Beschrijving |
| --- | --- |
| expr | Een uitdrukking die bestaat uit een aggregatiefunctie. De aggregatiefunctie aggregeert standaard over de set mogelijke records die wordt gedefinieerd door de selectie. |
| StructuredParameter | StructuredParameter bestaat uit een `dimensie` en, optioneel, sorteercriteria in de indeling: (Dimension(Sort-type, Ordering))<br><br>De dimensie is een enkel veld en kan geen uitdrukking zijn. Aan de hand van de dimensie wordt de reeks waarden bepaald waarvoor de uitdrukking Aggr wordt berekend.<br><br>Als sorteercriteria zijn opgenomen, wordt de reeks waarden die door de functie Aggr wordt gemaakt en voor de dimensie wordt berekend, gesorteerd. Dit is belangrijk wanneer de sorteervolgorde van invloed is op het resultaat van de uitdrukking waarin de functie Aggr is opgenomen.<br><br>Voor details over het gebruik van sorteercriteria raadpleegt u [Sorteercriteria toevoegen aan de dimensie in de gestructureerde parameter](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/aggr.htm#Sorting). |
| SetExpression | De aggregatiefunctie aggregeert standaard over de set mogelijke records die wordt gedefinieerd door de selectie. Met de uitdrukking Set-analyse kunt u een alternatieve set records definiëren. |
| DISTINCT | Als het argument van de uitdrukking wordt voorafgegaan door de kwalificatie distinct of als er geen kwalificatie wordt gebruikt, genereert elke afzonderlijke combinatie van dimensiewaarden slechts één retourwaarde. Dit is de normale manier om aggregaties te maken: elke afzonderlijke combinatie van dimensiewaarden levert één lijn in het diagram op. |
| NODISTINCT | Als het argument van de uitdrukking wordt voorafgegaan door de kwalificatie nodistinct, kan elke combinatie van dimensiewaarden meer dan één retourwaarde genereren, afhankelijk van de onderliggende gegevensstructuur. Als er slechts één dimensie is, retourneert de functie aggr een reeks met hetzelfde aantal elementen als er rijen zijn in de brongegevens. |

Elementaire aggregatiefuncties, zoals Sum, Min en Avg, retourneren een enkele numerieke waarde, terwijl de functie Aggr() kan worden vergeleken met het maken van een tijdelijke resultatenset (een virtuele tabel) waarover een andere aggregatie kan worden uitgevoerd. Zo kunt u bijvoorbeeld een gemiddelde verkoopwaarde berekenen door met een Aggr()-instructie de verkopen per klant op te tellen en daarna het gemiddelde van de opgetelde resultaten te berekenen: Avg(TOTAL Aggr(Sum(Sales),Customer)).

TipGebruik de functie Aggr() in berekende dimensies als u geneste diagramaggregaties op meerdere niveaus wilt maken.

Beperkingen:

Elke dimensie in een Aggr()-functie moet een enkel veld zijn en kan geen uitdrukking (berekende dimensie) zijn.

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/aggr.htm)Sorteercriteria toevoegen aan de dimensie in de gestructureerde parameter

In zijn basisvorm is het argument StructuredParameter in de syntaxis van de functie Aggr een enkele dimensie. De uitdrukking Aggr(Sum(Sales, Month)) levert de totale verkoopwaarde voor elke maand op. Bij insluiting in een andere aggregatiefunctie kunnen er onverwachte resultaten optreden tenzij sorteercriteria worden gebruikt. Dit komt doordat sommige dimensies numeriek of alfabetisch kunnen worden gesorteerd, enzovoort.

In het argument StructuredParameter in de functie Aggr kunt u sorteercriteria opgeven voor de dimensie in uw uitdrukking. Op die manier legt u een sorteervolgorde op aan de virtuele tabel die door de functie Aggr wordt gemaakt.

Het argument StructuredParameter heeft de volgende syntaxis:

(FieldName, (Sort-type, Ordering))

Gestructureerde parameters kunnen worden genest::

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

Het sorteertype kan zijn: NUMERIC, TEXT, FREQUENCY of LOAD\_ORDER.

De volgende ordeningstypen zijn aan elke sorteertype gekoppeld:

Toegestane ordeningstypen

| Sorteertype | Toegestane ordeningstypen |
| --- | --- |
| NUMERIC | ASCENDING, DESCENDING of REVERSE |
| TEXT | ASCENDING, A2Z, DESCENDING, REVERSE of Z2A |
| FREQUENCY | DESCENDING, REVERSE of ASCENDING |
| LOAD\_ORDER | ASCENDING, ORIGINAL, DESCENDING of REVERSE |

De ordeningstypen REVERSE en DESCENDING zijn equivalent.

Voor sorteertype TEXT zijn de ordeningstypen ASCENDING en A2Z equivalent en zijn DESCENDING, REVERSE en Z2A equivalent.

Voor sorteertype LOAD\_ORDER zijn de ordeningstypen ASCENDING en ORIGINAL equivalent.

## Voorbeelden: diagramuitdrukkingen met Aggr

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

#### Voorbeelden - Diagramuitdrukkingen

### Diagramuitdrukking voorbeeld 1

#### Load-script

Laad de volgende gegevens als een inline-load in de editor voor laden van gegevens om de onderstaande voorbeelden van diagramuitdrukkingen te maken.

```
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 '|');
```

Voor meer informatie over inline loads, raadpleegt u [Inline-ladingen gebruiken om gegevens te laden](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

#### Diagramuitdrukking

Maak een KPI-visualisatie in een Qlik Sense-werkblad. Voeg de volgende uitdrukking als meting toe aan de KPI:

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

#### Resultaat

376.7

#### Uitleg

De uitdrukking `Aggr(Sum(UnitSales*UnitPrice), Customer)` levert de totale verkoopwaarde per Customer op en retourneert een reeks waarden: 295, 715 en 120 voor de drie Customer-waarden.

Het komt erop neer dat wij een tijdelijke lijst met waarden hebben samengesteld zonder een expliciete tabel of kolom te hoeven maken die deze waarden bevat.

Deze waarden worden gebruikt als invoer voor de functie Avg() om de gemiddelde verkoopwaarde te berekenen: 376.7.

Zie [Uitdrukkingen gebruiken in visualisaties](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/use-expressions-in-visualizations.htm) voor meer informatie over uitdrukkingen.

### Diagramuitdrukking voorbeeld 2

#### Load-script

Laad de volgende gegevens als een inline-load in de editor voor laden van gegevens om de onderstaande voorbeelden van diagramuitdrukkingen te maken.

```
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 '|');
```

Voor meer informatie over inline loads, raadpleegt u [Inline-ladingen gebruiken om gegevens te laden](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

#### Diagramuitdrukking

Maak een tabelvisualisatie in een Qlik Sense-werkblad met Customer, Product, UnitPrice en UnitSales als dimensies. Voeg de volgende uitdrukking als meting toe aan de tabel:

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

#### Resultaat

| 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 |

#### Uitleg

Een array van waarden: 16, 16, 15, 15, 12, 12, 22, 22, 25, 15, 15 en 19. De kwalificatie nodistinct betekent dat de reeks één element bevat voor elke rij in de brongegevens: elk element is de maximale UnitPrice per Customer en Product.

### Diagramuitdrukking voorbeeld 3

#### Load-script

Laad de volgende gegevens als een inline-load in de editor voor laden van gegevens om de onderstaande voorbeelden van diagramuitdrukkingen te maken.

```
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;
```

#### Diagramuitdrukkingen

Maak een tabelvisualisatie in een Qlik Sense-werkblad met Year en Month als dimensies. Voeg de volgende uitdrukkingen aan de tabel toe als metingen:

* `Sum(Sales)`
* `Sum(Aggr( Rangesum(Above(Sum(Sales),0,12)), (Year, (Numeric, Ascending)), (Month, (Numeric, Ascending)) ))` gelabeld als Structured Aggr() in de tabel.

#### Resultaat

| 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 |

#### Uitleg

Dit voorbeeld geeft de geaggregeerde waarden weer over een periode van twaalf maanden voor elk jaar in chronologisch oplopende volgorde, en daarmee het deel met de gestructureerde parameters (Numeriek, Oplopend) van de uitdrukking Aggr(). Twee specifieke dimensies zijn vereist als gestructureerde parameters: Jaar en Maand , gesorteerd op (1) Jaar (numeriek) en (2) Maand (numeriek). Deze twee dimensies moeten in de visualisatie van de tabel of het diagram worden gebruikt. Dit is nodig zodat de lijst met dimensies van de functie Aggr() overeenkomt met de dimensies van het object dat in de visualisatie wordt gebruikt.

U kunt de resultaten van deze metingen vergelijken in een tabel of in afzonderlijke lijndiagrammen:

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

Het moet duidelijk zijn dat de gewenste accumulatie van geaggregeerde waarden door de laatstgenoemde uitdrukking wordt uitgevoerd.

## Meer informatie

* [Basisaggregatiefuncties](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/AggregationFunctions/basic-aggregation-functions.htm)
* [Set-analyse](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)