Geneste aggregaties met de aggregatiefunctie
Het gebruik van TOTAL voor nesten is niet altijd voldoende. Voor algemenere geneste aggregaties moet de geavanceerde aggregatiefunctie worden gebruikt in combinatie met berekende dimensies.
Voorbeeld:
De volgende gegevens zijn gelezen door het script:
Een voor de hand liggende vraag met deze gegevens is: "Hoeveel klanten heeft elke verkoper?".
De vraag kan eenvoudig worden beantwoord met een standaard QlikView-tabel:
De verworven kennis kan leiden tot enkele nieuwe vragen: "Hoeveel verkopers hebben slechts één klant? Hoeveel hebben er drie of meer?".
Als u het feit dat het in dit eenvoudige voorbeeld gemakkelijk is om de aantallen te tellen even buiten beschouwing laat, is dit het soort vragen waarvoor is een tweede aggregatieniveau nodig. De vereiste gegevens voor de berekening staan niet in de oorspronkelijke velden en ze kunnen ook niet direct worden berekend op basis van deze velden.
U moet een manier zoeken om de kolom met de uitdrukking in de grafiek hierboven te gebruiken als dimensie in een nieuwe grafiek. U kunt hiertoe gebruikmaken van de geavanceerde aggregatiefunctie.
Voor het uitvoeren van de berekening van de eerste grafiek als een interne grafiekberekening in een nieuwe grafiek, moet de volgende opdracht worden gebruikt voor dimensie:
=Aggr(Count(Customer),SalesRep)
Vervolgens voert u de volgende uitdrukking in voor de nieuwe grafiek:
Count(Distinct SalesRep)
De kwalificatie DISTINCT is vereist, omdat QlikView het aantal regels telt in de onderliggende tabel.
De resulterende tabel beantwoordt de vraag "Hoeveel verkopers hebben 1, 2, 3 enz. klanten?":
Twee zaken ter opmerking:
- Voor de tweede grafiek is in geen enkel opzicht de aanwezigheid van de eerste grafiek vereist. De aggregatie van de eerste orde is immers gedefinieerd binnen de dimensie van de tweede grafiek.
- De mogelijkheden van geneste aggregaties zijn hiermee nog niet uitgeput. De dimensie-argumenten van de geavanceerde aggregatiefunctie kunnen uiteraard berekende dimensies bevatten, die op hun beurt weer gebruikmaken van de geavanceerde aggregatiefunctie. U kunt echter snel de draad kwijtraken bij aggregaties voorbij de derde orde.