Gå till huvudinnehåll

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

Set-uttryck används i aggregeringsfunktioner och inom en klammerparentes. Exempel:

Sum( {$<Year={2021}>} Sales )

Ett set-uttryck består av en kombination av följande element:

  • Identifierare. 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

    Se: Set-identifierare

  • Operatorer. 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

  • Modifierare 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

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:

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

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

    Tabell 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.