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 geavanceerde aggregaties, waarbij de functie Aggr is ingesloten in een andere aggregatiefunctie met behulp van de reeks resultaten van de functie Aggr als invoer voor de aggregatie waarin de functie is genest.

Syntaxis:  

Aggr({[DISTINCT] [NODISTINCT ]} expr, dim{, dimension})

Retourgegevenstype: dual

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.

dim De dimensie waarvoor de reeks van waarden in de uitdrukking is vastgesteld. Dit is een enkel veld en kan geen uitdrukking zijn.
dimension Optioneel. Een of meer dimensies waarmee de uitdrukking verder kan worden uitgebreid.
DISTINCT Als het argument van de uitdrukking wordt voorafgegaan door de kwalificatie distinct of als er geen kwalificatie wordt gebruikt, genereert elke combinatie van dimensiewaarden slechts één retourwaarde. Dit is de normale manier om aggregaties te maken: elke afzonderlijke combinatie van dimensiewaarden levert één lijn in de grafiek op.
NODISTINCT

Als het argument van de uitdrukking vóór de kwalificatie nodistinct staat, kan elke combinatie van dimensiewaarden meer dan één retourwaarde genereren, afhankelijk van de onderliggende gegevensstructuur. Als er slechts één dimensie is, retourneert de aggr-functie een array 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 waarover een andere aggregatie kan plaatsvinden. Bijvoorbeeld: het berekenen van een gemiddelde omzetwaarde door het optellen van de omzet per klant in een Aggr()-opdracht en het vervolgens berekenen van het gemiddelde van de opgetelde resultaten: Avg(TOTAL Aggr(Sum(Sales), Customer)).

Tip: Gebruik deze functie in berekende dimensies als u geneste grafiekaggregatie op meerdere niveaus wilt uitvoeren.

Beperkingen:  

Elke dimensie moet een enkel veld en geen uitdrukking (berekende dimensie) zijn.

Voorbeelden en resultaten:

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

Maak een tabel met Customer, Product, UnitPrice en UnitSales als dimensies.

Voorbeeld Resultaat
Avg(Aggr(Sum(UnitSales*UnitPrice), Customer))

Voeg de uitdrukking als meting toe aan de tabel. De waarde van Aggr(Sum(UnitSales*UnitPrice), Customer). Dit leidt tot de totale waarde van de omzet per Customer, en retourneert een bereik van waarden: 295, 715 en 120 voor de drie Customer-waarden.

Deze waarden worden gebruikt als invoer voor de functie Avg() voor het berekenen van de gemiddelde omzetwaarde, 376.6667. (In het eigenschappenvenster moet u onder Presentatie de optie Totalen hebben geselecteerd.)

Gegevens die worden gebruikt in voorbeelden:

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

] (delimiter is '|');