Nästlade aggregeringar med aggregeringsfunktionen
Ibland räcker det inte att nästla med TOTAL. För mer generell nästling kan man behöva använda den avancerade aggregeringsfunktionen i kombination med beräknade dimensioner.
Exempel:
Följande data har lästs in från skriptet:
En självklar fråga för dessa data blir: ”Hur många kunder har varje säljare?”.
Frågan kan enkelt besvaras med hjälp av en standardtabell i QlikView:
Ytterligare frågor kan följa, med tanke på informationen som just framkommit: ”Hur många säljare har endast en kund? Hur många har tre kunder eller fler?”.
Om du bortser från det faktum att det i det här enkla fallet är enkelt att räkna ihop talen i uttryckskolumnerna för hand, är det den här typen av frågor som behöver en andra aggregering. Informationen som behövs för att genomföra beräkningen finns inte i de ursprungliga fälten och kan inte heller räknas ihop direkt från dem.
Du behöver hitta ett sätt att använda uttryckskolumnen i diagrammet ovan som dimension i ett nytt diagram. Detta kan göras med hjälp av den avancerade aggregeringsfunktionen.
För att göra beräkningen av det första diagrammet som en inre diagramberäkning i ett nytt diagram, måste du använda följande sats för dimensionen:
=Aggr(Count(Customer),SalesRep)
Sedan kan du ange följande uttryck för det nya diagrammet:
Count(Distinct SalesRep)
DISTINCT-kvalificeraren behövs eftersom QlikView räknar antalet rader i den underliggande tabellen.
Detta resulterar i en tabell som svarar på frågan "Hur många säljare har 1, 2 eller 3 kunder?"
Notera två detaljer:
- Det andra diagrammet kräver inte alls att det första diagrammet finns. Det bildar en enhet i sig själv med den första ordningsaggregering som är definierad inom dess dimension.
- Nästling erbjuder andra möjligheter också. Dimensionsargumenten i den avancerade aggregeringsfunktionen kan så klart innehålla beräknade dimensioner som i sin tur använder sig av den avancerade aggregeringsfunktionen. Det skulle däremot vara ganska lätt att tappa överblicken över vad man håller på med när man passerat tredje nivåns aggregering.