Set-analyse en set-uitdrukkingen
Set-analyse biedt een manier om een set (of groep) van gegevenswaarden te definiëren die verschilt van de normale set die wordt gedefinieerd door de huidige selecties.
Normaliter worden bij het maken van een selectie aggregatiefuncties uitgevoerd, zoals Sum, Max, Min, Avg en Count, op de selecties die hebben plaatsgevonden: de huidige selecties. Uw selecties definiëren autormatisch de gegevensverzameling die moet worden geaggregeerd. Met set-analyse kunt u een groep definiëren die onafhankelijk is van de huidige selecties. Dit kan handig zijn als u een specifieke waarde wilt weergeven, bijvoorbeeld het marktaandeel van een product over alle regio's heen, ongeacht de huidige selecties.
Set-analyse is tevens een krachtig hulpmiddel bij het uitvoeren van verschillende soorten vergelijkingen, zoals de bestverkochte producten vergeleken met producten die slecht verkopen, of dit jaar vergeleken met verleden jaar.
We gaan uit van een voorbeeld waarbij u begint te werken in een document door het jaar 2010 te selecteren in een keuzelijst. De aggregaties worden dan gebaseerd op die selectie en de grafieken laten alleen waarden voor dat jaar zien. Als u nieuwe selecties uitvoert, worden de grafieken op basis hiervan bijgewerkt. De aggregaties worden uitgevoerd op de set mogelijke records die is gedefinieerd door de huidige selecties. Met set-analyse kunt u een set definiëren die van interesse voor u is en die niet afhankelijk is van de selecties.
Set-uitdrukkingen maken
Voordat we naar de verschillende onderdelen van een voorbeeld van set-analyse gaan kijken, moeten we onderscheid maken tussen een set-uitdrukking en set-analyse:
Het definiëren van een set veldwaarden wordt ook wel het definiëren van een set-uitdrukking genoemd, terwijl het gebruiken van set-uitdrukkingen voor het analyseren van gegevens wordt aangeduid als set-analyse. De rest van deze sectie gaat derhalve over de set-uitdrukking en de onderdelen hiervan.
Hier is een voorbeeld van een set-analyse: sum( {$<Year={2009}>} Sales ), waarbij {$<Year={2009}>} een set-uitdrukking is.
Er kunnen in en buiten de aggregatiefuncties setexpressies worden gebruikt. Deze worden omsloten door accolades.
Voorbeeld: Interne setexpressie
Sum( {$<Year={2021}>} Sales )
Voorbeeld: Externe setexpressie
{<Year={2021}>} Sum(Sales) / Count(distinct Customer)
Voor meer informatie over interne en externe setexpressies, zie Interne en externe setexpressies.
Een set-uitdrukking bestaat uit een combinatie van de volgende onderdelen:
- Id's. Een of meer id's definiëren de relatie tussen de set-uitdrukking en wat wordt geëvalueerd in de rest van de uitdrukking. Een simpele set-uitdrukking bestaat uit een enkele id, zoals een dollarteken, {$}, oftewel alle records in de huidige selectie.
- Operatoren. Als er meerdere id's zijn, worden één of meer operatoren gebruikt voor het verfijnen van de gegevensverzameling door op te geven hoe de gegevensverzamelingen die worden aangeduid door de id's worden gecombineerd om bijvoorbeeld een subset of superset te maken.
- Modificaties. Er kunnen een of meer modificaties worden toegevoegd aan de set-uitdrukking om de selectie te veranderen. Een modificatie kan zelfstandig worden gebruikt of om een id voor het filteren van de gegevensverzameling te wijzigen.
Id's, operatoren en modificaties worden nader beschreven in de volgende subsecties.
Id's
Id's deffiniëren de relatie tussen de set-uitdrukking en de veldwaarden of uitdrukking die wordt geëvalueerd.
In ons voorbeeld sum( {$<Year={2009}>} Sales ), is het dollarteken , $ de id, waarmee wordt aangegeven dat de reeks records die moet worden geëvalueerd uit alle records van de huidige selectie bestaat. Deze set wordt vervolgens verder gefilterd door het modificatiegedeelte van de set-uitdrukking. In een complexere set-uitdrukking kunnen twee id's worden gecombineerd via een operator.
Deze tabel bevat een aantal algemene id's.
Id | Beschrijving |
---|---|
1 | Vertegenwoordigt de volledige set van alle records in de toepassing, ongeacht eventueel uitgevoerde selecties. |
$ | Vertegenwoordigt de records van de huidige selectie. De set-uitdrukking {$} staat dus gelijk aan het niet aangeven van een set-uitdrukking. |
$1 | Vertegenwoordigt de vorige selectie. $2 vertegenwoordigt de vorige selectie op één na, enzovoort. |
$_1 | Vertegenwoordigt de volgende (voorwaartse) selectie. $_2 vertegenwoordigt de volgende selectie min één, enzovoort. |
BM01 | U kunt elke gewenste bladwijzer-id of bladwijzernaam gebruiken. |
MyAltState | U kunt verwijzen naar de selecties die zijn uitgevoerd in een alternatieve state met behulp van de naam van de state. |
Voorbeelden:
Voorbeeld | Resultaat |
---|---|
sum ({1} Sales) | Retourneert de totale verkopen voor het document, waarbij selecties wel worden genegeerd maar de dimensie niet. |
sum ({$} Sales) |
Retourneert de verkopen voor de huidige selectie, oftewel hetzelfde als sum(Sales). |
sum ({$1} Sales) |
Retourneert de verkopen voor de vorige selectie. |
sum ({BM01} Sales) |
Retourneert de verkopen voor de bladwijzer met de naam BM01. |
Operatoren
Operators worden gebruikt voor het opnemen, uitsluiten of doorkruisen van gehele of gedeeltelijke gegevensverzamelingen. Alle operatoren gebruiken sets als operanden en leveren een set op als resultaat.
Deze tabel bevat operatoren die kunnen worden gebruikt in set-uitdrukkingen.
Operator | Beschrijving |
---|---|
+ | Samenvoegen. Deze binaire bewerking retourneert een set die bestaat uit de records die horen bij een van de twee set-operanden. |
- | Uitsluiten. Deze binaire bewerking retourneert een set records die horen bij de eerste maar niet bij de andere van de twee set-operanden. Daarnaast levert het de complementerende set op als het wordt gebruikt als unaire operator. |
* | Doorsnede. Deze binaire bewerking retourneert een set die bestaat uit de records die horen bij beide set-operanden. |
/ | Symmetrisch verschil (XOR). Deze binaire bewerking retourneert een set die bestaat uit de records die horen bij een van de set-operanden, maar niet bij beide set-operanden. |
Voorbeelden:
Voorbeeld | Resultaat |
---|---|
sum( {1-$} Sales ) | Retourneert de verkoop voor alles behalve de selectie. |
sum( {$*BM01} Sales ) | Retourneert de verkoop voor de gemeenschappelijke elementen voor de selectie en bladwijzer BM01. |
sum( {-($+BM01)} Sales ) |
Retourneert de verkoop voor alles behalve de selectie en bladwijzer BM01. |
Sum({$<Year={2009}>+1<Country={'Sweden'}>} Sales) | Retourneert de verkopen voor het jaar 2009 die zijn gekoppeld aan de huidige selecties en voegt de volledige verzameling gegevens die zijn gekoppeld aan het land Sweden voor alle jaren toe. |
Modificaties
Modificaties worden gebruikt om toevoegingen of wijzigingen uit te voeren voor een selectie. Dergelijke modificaties kunnen worden geschreven in de set-uitdrukking. Een modificatie bestaat uit een of meer veldnamen, elk gevolgd door een of meer selecties die kunnen worden uitgevoerd in het veld. Modificaties beginnen en eindigen met punthaken, <>.
Een set-modicatie wijzigt de selectie van de voorafgaande set-id. Als niet naar een set-id wordt verwezen, is de state van de huidige selectie impliciet.
Voorbeelden:
MyField | Resultaat |
---|---|
sum({$<OrderDate = DeliveryDate>} Sales) | Retourneert de verkopen voor de huidige selectie waarbij OrderDate = DeliveryDate. |
sum({1<Region = {US}>} Sales) |
Retourneert de verkopen voor de regio US, waarbij de huidige selectie buiten beschouwing wordt gelaten. |
sum({$<Region = >} Sales) |
Retourneert de verkopen voor de selectie, maar met de selectie in Region verwijderd. |
sum({<Region = >} Sales) |
Retourneert hetzelfde als in het voorbeeld hierboven. Wanneer de te modificeren set-id wordt weggelaten, wordt de overgenomen status verondersteld. |
sum({$<Year={2000}, Region={“U*”}>} Sales) | Retourneert de verkopen voor de huidige selectie, maar met nieuwe selecties in zowel Year als Region. |
Set-modificaties voor een meer gedetailleerde beschrijving van modificaties en hoe deze moeten worden gebruikt bij complexere set-analyse.