Set-analys och set-uttryck
Set-analys gör det möjligt att definiera en uppsättning (eller en grupp) av datavärden som är olik den normala uppsättning som definieras av aktuella urval.
Normalt när du gör ett urval aggregerar aggregeringsfunktioner som t.ex. Sum, Max, Min, Avg och Count över de urval du har gjort: de aktuella urvalen. Dina urval definierar automatiskt vilken datauppsättning som ska aggregeras över. Med set-analys kan du definiera en grupp som är oberoende av aktuella urval. Detta kan vara bra om du vill visa ett speciellt värde, till exempel marknadsandelen av en produkt över alla regioner oavsett de aktuella urvalen.
Set-analys är också effektivt när du gör olika typer av jämförelser, som t.ex. vilka produkter som säljer bäst i jämförelse med produkter som inte säljer så bra, eller för det här året i jämförelse med förra året.
Låt oss föreställa oss ett exempel där du börjar arbeta i ett dokument genom att välja år 2010 i en listbox. Aggregeringarna baseras då på det urvalet och diagrammen visar bara värden för det året. När du gör nya urval uppdateras diagrammen i enlighet med detta. Aggregeringarna görs över den uppsättning av möjliga poster som definieras av det aktuella urvalet. Med set-analys kan du definiera en uppsättning som intresserar dig och som är oberoende av urval som görs.
Skapa set-uttryck
Innan vi tittar på de olika delarna i en set-analys är det bra att göra en distinktion mellan set-uttryck och set-analys:
Att definiera en uppsättning fältvärden kallas att definiera ett set-uttryck. Att använda set-uttryck för att analysera data kallas set-analys. Därför går vi i resten av det här avsnittet igenom set-uttryck och deras komponenter.
Ett exempel på set-analys: sum( {$<Year={2009}>} Sales ), där {$<Year={2009}>} är ett set-uttryck.
Uppsättningsuttryck kan användas både inom och utanför aggregeringsfunktioner och står inom klammerparenteser.
Exempel: Inre uppsättningsuttryck
Sum( {$<Year={2021}>} Sales )
Exempel: Yttre uppsättningsuttryck
{<Year={2021}>} Sum(Sales) / Count(distinct Customer)
Mer information om inre och yttre uppsättningsuttryck finns i Inre och yttre uppsättningsuttryck.
Ett set-uttryck består av en kombination av följande delar:
- Identifierare. En eller fler identifierare definierar relationen mellan set-uttrycket och det som utvärderas i resten av uttrycket. Ett enkelt set-uttryck består av en enda identifierare, som t.ex. dollartecknet {$}, vilket innebär alla poster i aktuellt urval.
- Operatorer. Om det finns fler än en identifierare används en operator eller flera operatorer för att finjustera datauppsättningen genom att ange hur datauppsättningar som representeras av identifierarna kombineras för att skapa till exempel en underordnad eller överordnad uppsättning.
- Modifierare. En modifierare eller flera modifierare kan läggas till i set-uttrycket för att ändra urvalet. En modifierare kan användas på egen hand eller för att modifiera en identifierare för att filtrera datauppsättningen.
Identifierare, operatorer och modifierare beskrivs mer ingående i följande avsnitt.
Identifierare
Identifierare anger relationen mellan set-uttrycket och de fältvärden eller det uttryck som är under utvärdering.
I vårt exempel sum( {$<Year={2009}>} Sales ) är identifieraren dollartecknet $, och det innebär att den uppsättning av poster som ska utvärderas består av alla poster i aktuellt urval. Detta set filtreras sedan ytterligare av modifierardelen i set-uttrycket. I ett mer komplext set-uttryck kan två identifierare kombineras med hjälp av en operator.
Den här tabellen visar några gemensamma identifierare.
Identifierare | Beskrivning |
---|---|
1 | Representerar hela uppsättningen av alla poster i applikationen, oavsett vilka urval som har gjorts. |
$ | Representerar posterna i det aktuella urvalet. Set-uttrycket {$} är följaktligen motsvarigheten till att inte ange ett set-uttryck. |
$1 | Representerar tidigare urval. $2 representerar det näst föregående urvalet och så vidare. |
$_1 | Representerar nästa urval (framåt). $_2 representerar urvalet efter det nästföljande och så vidare. |
BM01 | Du kan använda vilket bokmärkes-ID eller bokmärkesnamn du vill. |
MyAltState | Du kan hänvisa till de urval som görs i ett parallellt tillstånd via tillståndets namn. |
Exempel:
Exempel | Resultat |
---|---|
sum ({1} Sales) | Returnerar den totala försäljningen för dokumentet, oavsett urval men inte oavsett dimensionen. |
sum ({$} Sales) |
Returnerar försäljning för det aktuella urvalet, alltså detsamma som sum(Sales). |
sum ({$1} Sales) |
Returnerar försäljning för föregående urval. |
sum ({BM01} Sales) |
Returnerar försäljningen för bokmärket med namnetBM01. |
Operatorer
Operatorer används för att inkludera, utesluta eller genomskära delar av eller hela datauppsättningar. Alla operatorer använder uppsättningar som operander och returnerar en uppsättning som resultat.
I den här tabellen visas operatorer som kan användas i set-uttryck.
Operator | Beskrivning |
---|---|
+ | Union. Denna binära operation returnerar en uppsättning som består av de poster som tillhör någon av de två set-operanderna. |
- | Exklusion. Denna binära operation returnerar en uppsättning som består av de poster som enbart tillhör den första av de två set-operanderna. Den returnerar dessutom det komplementära setet när det används som en unär operator. |
* | Intersektion. Denna binära operation returnerar en uppsättning som består av de poster som tillhör bägge set-operanderna. |
/ | Symmetrisk skillnad (XOR). Denna binära operation returnerar en uppsättning som består av de poster som tillhör någon av, fast inte båda, set-operanderna. |
Exempel:
Exempel | Resultat |
---|---|
sum( {1-$} Sales ) | Returnerar försäljningen för allt som urvalet exkluderar. |
sum( {$*BM01} Sales ) | Returnerar försäljningen för skärningspunkten mellan urvalet och bokmärket BM01. |
sum( {-($+BM01)} Sales ) |
Returnerar försäljning som exkluderas av urvalet och bokmärket BM01. |
Sum({$<Year={2009}>+1<Country={'Sweden'}>} Sales) | Returnerar försäljningen för år 2009 kopplat till de aktuella urvalen och lägger till hela uppsättningen med data som är kopplade till landet Sweden över alla år. |
Modifierare
Modifierare används för att göra tillägg eller ändringar i ett urval. Sådana ändringar kan skrivas in i set-uttrycket. En modifierare består av ett eller flera fältnamn, vart och ett åtföljt av en eller flera urval som kan göras i fältet. Modifierare börjar och slutar med vinkelparenteser <>.
En set-modifierare förändrar urvalet av föregående set-identifierare. Om det inte finns någon hänvisning till en set-identifierare är det aktuella urvalstillståndet implicit.
Exempel:
MyField | Resultat |
---|---|
sum({$<OrderDate = DeliveryDate>} Sales) | Returnerar försäljning för aktuellt urval där OrderDate = DeliveryDate. |
sum({1<Region = {US}>} Sales) |
Returnerar försäljningen för regionen USA och ignorerar det aktuella urvalet. |
sum({$<Region = >} Sales) |
Returnerar försäljningen för urvalet, men med urvalet i Region borttaget. |
sum({<Region = >} Sales) |
Returnerar samma resultat som exemplet ovanför. När det set som ska modifieras är utelämnat antas det nedärvda tillståndet. |
sum({$<Year={2000}, Region={“U*”}>} Sales) | Returnerar försäljning för det aktuella urvalet, men med nya urval både i Year och Region. |
Set-modifierare för en mer detaljerad beskrivning av modifierare och hur de kan användas i en mer komplex set-analys.