Binnenste en buitenste set-uitdrukkingen
Set-uitdrukkingen kunnen binnen en buiten aggregatiefuncties worden gebruikt en worden tussen accolades geplaatst.
Als u een set-uitdrukking binnen een aggregatiefunctie gebruikt, kan deze er zo uit komen te zien:
Voorbeeld: Binnenste set-uitdrukking
Sum( {$<Year={2021}>} Sales )
Gebruik een set-uitdrukking buiten de aggregatiefunctie als u uitdrukkingen met meerdere aggregaties hebt en niet dezelfde set-uitdrukking in elke aggregatiefunctie wilt schrijven.
Als u een buitenste set-uitdrukking gebruikt, moet deze aan het begin van het bereik worden geplaatst.
Voorbeeld: Buitenste set-uitdrukking
{<Year={2021}>} Sum(Sales) / Count(distinct Customer)
Als u een set-uitdrukking buiten de aggregatiefunctie gebruikt, kunt u deze ook toepassen op bestaande mastermetingen.
Voorbeeld: Buitenste set-uitdrukking toegepast op mastermeting
{<Year={2021}>} [Master Measure]
Een set-uitdrukking die buiten aggregatiefuncties wordt gebruikt, heeft invloed op de volledige uitdrukking, tenzij deze tussen haakjes is geplaatst. In dat geval definiëren de haakjes het bereik. In het onderstaande voorbeeld van een statische bereik wordt de set-uitdrukking alleen toegepast op de aggregatie binnen de haakjes.
Voorbeeld: Statisch bereik toepassen
( {<Year={2021}>} Sum(Amount) / Count(distinct Customer) ) – Avg(CustomerSales)
Regels
Statisch bereik
De set-uitdrukking is van invloed op de volledige uitdrukking, tenzij deze tussen haakjes is geplaatst. Indien dit het geval is, definiëren de haakjes het statische bereik.
Positie
De set-uitdrukking moet aan het begin van het statische bereik worden geplaatst.
Context
De context is de selectie die relevant is voor de uitdrukking. Normaal gesproken is de context altijd de standaardstate van de huidige selectie. Maar als een object op een alternatieve state is ingesteld, is de context de alternatieve state van de huidige selectie.
U kunt ook een context definiëren in de vorm van een buitenste set-uitdrukking.
Overname
Binnenste set-uitdrukkingen hebben voorrang op buitenste set-uitdrukkingen. Als de binnenste set-uitdrukking een set-id bevat, vervangt deze de context. Ander worden de context en set-uitdrukking samengevoegd.
-
{$<SetExpression>} - overschrijft de buitenste set-uitdrukking
-
{<SetExpression>} - wordt samengevoegd met de buitenste set-uitdrukking
Toewijzing van elementset
De toewijzing van de elementset bepaalt hoe de twee selecties worden samengevoegd. Als een normaal gelijkteken wordt gebruikt, heeft de selectie in de binnenste set-uitdrukking voorrang. Anders wordt de impliciete set-operator gebruikt.
-
{<Field={value}>} - deze binnenste selectie vervangt elke buitenste selectie in “Field”.
-
{<Field+={value}>} - deze binnenste selectie wordt samengevoegd met de buitenste selectie in “Field”, met behulp van de verenigingsoperator.
-
{<Field*={value}>} - deze binnenste selectie wordt samengevoegd met de buitenste selectie in “Field”, met behulp van de doorsnede-operator.
Overname in meerdere stappen
Overname kan in meerdere stappen worden uitgevoerd. Voorbeelden:
-
Huidige selectie → Sum(Amount)
De aggregatiefunctie gebruikt de context, dat is hier de huidige selectie.
-
Huidige selectie → {<Set1>} Sum(Amount)
Set1 neemt de huidige selectie over en het resultaat is de context voor de aggregatiefunctie.
-
Huidige selectie → {<Set1>} ({<Set2>} Sum(Amount))
Set2 neemt Set1 over, die vervolgens de huidige selectie overneemt en het resultaat is de context voor de aggregatiefunctie.
De functie Aggr()
De functie Aggr() maakt een geneste aggregatie die twee afzonderlijke aggregaties bevat. In het onderstaande voorbeeld wordt een Count() berekend voor elke waarde van Dim, en de resulterende matrix is geaggregeerd met behulp van de functie Sum().
Voorbeeld:
Sum(Aggr(Count(X),Dim))
Count() is de binnenste aggregatie en Sum() is de buitenste aggregatie.
-
De binnenste aggregatie neemt geen context over van de buitenste aggregatie.
-
De binnenste aggregatie neemt de context van de functie Aggr() over, die mogelijk een set-uitdrukking bevat.
-
Zowel de functie Aggr() als de buitenste aggregatiefunctie nemen de context van een buitenste set-uitdrukking over.