Summa av rader i pivottabeller
För den raka tabellen i QlikView kan du välja mellan att visa totala värden i en enkel summa av rader eller ett beräknat totalt värde för uttrycket. I pivottabellen i QlikView finns inte denna valmöjlighet. Totaler i pivottabeller beräknas alltid som totaler för uttryck.
Detta är normalt bra eftersom det inte ofta händer att en total för en summa av rader är relevant när de två är olika.
Nu när vi har utfärdat denna varning ska vi titta på ett exempel där totalen för summan av rader trots allt är det resultat vi söker.
Exempel:
I detta exempel har vi en skoltävling där lag om tre studenter får poäng baserat på deras betyg i tre olika ämnen. Laget kan välja det högsta värdet inom gruppen för varje enskilt ämne och sedan lägga samman de tre högsta resultaten till en total. Följande data har lästs in från skriptet:
En rak tabell med Class som dimension och Max(Score) som uttryck ger följande summa av rader:
Om den raka tabellen skulle konverteras till en pivottabell som alltid beräknas som en uttryckstotal i stället för en summa av rader, skulle vi stöta på en utmaning:
I detta specifika fall är totalen 12 det vi söker. 5 är helt fel för vårt syfte. I det här fallet kan Aggr-funktionen användas i uttrycket, inte i dimensionen.
Det ursprungliga uttrycket är inneslutet i en Aggr-funktion och det omslutande diagrammets dimensioner används även som dimension i Aggr-funktionen. Sedan använder vi dem sammanslagna som argument i en Sum-aggregering. Tabellen visar nu den förväntade totalen:
Det fina med den avancerade aggregeringsfunktionen är att de enstaka raderna evalueras till ett enda värde. Det beror så klart på att dimensionen bara har ett enda möjligt värde på varje vanlig datarad. Eftersom den inre dimensionen och uttrycket är samma som för det omgivande diagrammet kommer varje värde så klart att vara exakt samma som resultatet utan den omslutande Sum-funktionen och avancerade aggregeringsfunktioner.
För total-raden kommer den avancerade aggregeringsfunktionen däremot att returnera tre värden, ett för varje värde i dimensionsfältet. Dessa läggs i sin tur ihop av Sum-aggregeringen. Trots att det fortfarande är en uttryckstotal kommer resultatet att motsvara resultatet från summa av rader.