Set-analys
NÀr du gör ett urval i en app definierar du en delmÀngd av posterna i data. Aggregeringsfunktioner, som Sum(), Max(), Min(), Avg() och Count() berÀknas baserat pÄ den hÀr delmÀngden.
Ditt urval definierar med andra ord aggregeringens omfattning; den definierar uppsÀttningen med poster som berÀkningarna görs pÄ.
Set-analys gör det möjligt att definiera en omfattning som Àr olik den uppsÀttning med poster som definieras av det aktuella urvalet. Den hÀr nya omfattningen kan Àven betraktas som ett alternativt urval.
Det hÀr kan vara anvÀndbart om du vill jÀmföra det aktuella urvalet med ett visst vÀrde, till exempel förra Ärets vÀrde eller den globala marknadsandelen.
Set-uttryck
UppsÀttningsuttryck kan anvÀndas i aggregeringsfunktioner och 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 element:
-
Identifiers. En set-identifierare motsvarar ett urval, som definieras pÄ en annan plats. Den motsvarar Àven en specifik uppsÀttning med poster i data. Det kan vara det aktuella urvalet, ett urval frÄn ett bokmÀrke eller ett urval frÄn ett parallellt tillstÄnd. Ett enkelt set-uttryck bestÄr av en enda identifierare, som t.ex. dollartecknet {$}, vilket innebÀr alla poster i aktuellt urval.
Exempel: $, 1, BookMark1, State2
-
Operators. En set-operator kan anvÀndas till att skapa unioner, differenser eller intersektioner mellan set-identifierare. PÄ det sÀttet kan du skapa en överordnad uppsÀttning av urvalen som definierats av set-identifierarna.
Exempel: +, -, *, /
Se: Set-operatorer
-
Modifiers. En set-modifierare kan lĂ€ggas till i set-identifieraren för att Ă€ndra dess urval. En modifierare kan Ă€ven anvĂ€ndas pĂ„ egen hand och kommer sedan att modifiera standardidentifieraren. En modifierare mĂ„ste omslutas av vinkelparenteser <âŠ>.
Exempel: <Year={2020}>, <Supplier={ACME}>
Se: Set-modifierare
Elementen kombineras för att skapa set-uttryck.
Element i ett set-uttryck

Set-uttrycket ovan Àr till exempel byggt frÄn aggregeringen Sum(Sales).
Den första operanden returnerar försÀljning för Äret 2021 för det aktuella urvalet, vilket indikeras med set-identifieraren $ och modifieraren som innehÄller urvalet för Är 2021. Den andra operanden returnerar Sales för Sweden och ignorerar det aktuella urvalet, vilket indikeras med set-identifieraren 1.
Slutligen returnerar uttrycket en uppsÀttning som bestÄr av posterna som tillhör nÄgon av de tvÄ set-operanderna, enligt indikation frÄn set-operatorn +.
För en fullstÀndig syntaxbeskrivning, se Syntax för set-uttryck.
Exempel
Exempel som kombinerar set-uttryckselementen ovan Àr tillgÀngliga i följande Àmnen:
Om du vill prova nĂ„gra andra uttryck kan du lĂ€sa Introduktion â Skapa ett set-uttryck.
Naturliga uppsÀttningar
Vanligen motsvarar ett set-uttryck bÄde en uppsÀttning med poster i datamodellen och ett urval som definierar den hÀr delmÀngden data. I detta fall kallas uppsÀttningen en naturlig uppsÀttning.
Set-identifierare, med eller utan set-modifierare, representerar alltid naturliga uppsÀttningar.
Ett set-uttryck som anvÀnder set-operatorer representerar dock Àven en delmÀngd av posterna, men kan generellt ÀndÄ inte beskrivas som ett urval med fÀltvÀrden. Ett sÄdant uttryck Àr en icke-naturlig uppsÀttning.
Till exempel kan uppsÀttningen som ges av {1-$} inte alltid definieras av ett urval. Det innebÀr att det inte Àr en naturlig uppsÀttning. Det gÄr att visa genom att ladda följande data, lÀgga till dem i en tabell och sedan göra urvalen med filterpaneler.
Load * Inline
[Dim1, Dim2, Number
A, X, 1
A, Y, 1
B, X, 1
B, Y, 1];
Genom att göra urval för Dim1 och Dim2 fÄr du vyn som visas i följande tabell.
Tabell med naturliga och icke-naturliga uppsÀttningar

Set-uttrycket i den första ÄtgÀrden anvÀnder en naturlig uppsÀttning: det motsvarar urvalet som görs {$}.
Den andra ÄtgÀrden Àr annorlunda. Den anvÀnder {1-$}. Det gÄr inte att göra ett urval som motsvarar den hÀr uppsÀttningen, sÄ det Àr en icke-naturlig uppsÀttning.
Den hÀr distinktionen har ett flertal konsekvenser:
-
Set-modifierare gÄr endast att tillÀmpa pÄ set-identifierare. De gÄr inte att tillÀmpa pÄ ett godtyckligt set-uttryck. Till exempel Àr det inte möjligt att anvÀnda ett set-uttryck som:
{ (BM01 * BM02) <Field={x,y}> }
HÀr betyder de vanliga (runda) parenteserna att intersektionen mellan BM01 och BM02 ska utvÀrderas innan set-modifieraren tillÀmpas. SkÀlet Àr att det inte finns nÄgon uppsÀttning av element som kan modifieras.
-
Du kan inte anvÀnda icke-naturliga uppsÀttningar i P()- och E()-elementfunktioner. Dessa funktioner returnerar en uppsÀttning av element, men det gÄr inte att hÀrleda en uppsÀttning frÄn en icke-naturlig uppsÀttning.
-
Ett mÄtt som anvÀnder en icke-naturlig uppsÀttning kan inte alltid attribueras till rÀtt dimensionsvÀrde om datamodellen har flera tabeller. I följande diagram attribueras vissa uteslutna försÀljningssiffror till rÀtt Country, medan andra har NULL som Country.
Diagram med icke-naturlig uppsÀttning
Huruvida tilldelningen Àr korrekt eller inte beror pÄ datamodellen. I det hÀr fallet kan talet inte tilldelas om det berör ett land som utesluts av urvalet.
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 med hjÀlp av tillstÄndets namn. |
Exempel | Resultat |
---|---|
sum ({1} Sales) | Returnerar den totala försÀljningen för appen, 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. |
Exempel | 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 $. |
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. |