Aggr - Diagrammfunktion
Aggr() berechnet eine Reihe von Werten für die Formel aggregiert über die angegebene Dimension oder Dimensionen. Beispielsweise den maximalen Umsatzwert pro Kunde oder Region.
Die Aggr-Funktion wird für verschachtelte Aggregierungen verwendet, bei denen der erste Parameter (die innere Aggregierung) einmal pro Dimensionswert berechnet wird. Die Dimensionen werden im zweiten Parameter (und in den folgenden Parametern) angegeben.
Zudem sollte die Funktion Aggr in einer äußeren Aggregierungsfunktion eingeschlossen sein. Dazu wird die Reihe von Ergebnissen der Funktion Aggr als Eingabe für die Aggregierung verwendet, in der sie verschachtelt ist.
Syntax:
Aggr({SetExpression}[DISTINCT] [NODISTINCT ] expr, StructuredParameter{, StructuredParameter})
Rückgabe Datentyp: dual
Argumente:
Argument | Beschreibung |
---|---|
expr |
Eine aus einer Aggregierungsfunktion bestehende Formel. Standardmäßig berechnet sich die Aggregierungsfunktion über alle wählbaren Werte. |
StructuredParameter |
StructuredParameter besteht aus einer Dimension und optional aus Sortierkriterien im folgenden Format: Die Dimension ist ein Einzelfeld und kann keine Formel sein. Mithilfe der Dimension wird die Reihe der Werte festgelegt, für die die Formel Aggr berechnet wird. Wenn Sortierkriterien enthalten sind, wird die Reihe der von der Aggr-Funktion erstellten und für die Dimension berechneten Werte sortiert. Dies ist wichtig, wenn die Sortierreihenfolge das Ergebnis der in der Aggr-Funktion eingeschlossenen Formel beeinflusst. Details zur Verwendung der Sortierkriterien finden Sie unter Hinzufügen von Sortierkriterien zur Dimension im strukturierten Parameter. |
SetExpression | Standardmäßig berechnet sich die Aggregierungsfunktion über alle wählbaren Werte. Alternativ können Sie die der Berechnung zugrunde liegenden Werte über die Auswahlformel bestimmen. |
DISTINCT |
Wird dem Formelargument der Qualifizierer distinct vorangestellt oder wird gar kein Qualifizierer verwendet, generiert jede einzelne Kombination aus Dimensionswerten nur einen Rückgabewert. So werden Aggregierungen normalerweise verwendet – jede unterschiedliche Kombination aus Dimensionswerten ergibt eine Zeile im Diagramm. |
NODISTINCT |
Wird dem Formelargument der Qualifizierer nodistinct vorangestellt, kann jede Kombination aus Dimensionswerten abhängig von der zugrunde liegenden Datenstruktur mehrere Rückgabewerte generieren. Ist nur eine Dimension vorhanden, gibt die Funktion aggr ein Array mit so vielen Elementen zurück, wie Zeilen in den Quelldaten vorhanden sind. |
Grundlegende Aggregierungsfunktionen wie Sum, Min und Avg geben einen einzelnen numerischen Wert zurück. Die Funktion Aggr() kann hingegen mit dem Erstellen einer temporären abgestuften Trefferliste (einer virtuellen Tabelle) verglichen werden, mit der eine weitere Aggregierung durchgeführt werden kann. Beispielsweise ergibt sich durch die Berechnung eines durchschnittlichen Verkaufswerts durch Addieren der Verkäufe pro Kunde in einer Aggr()-Anweisung und anschließender Berechnung des Durchschnitts der summierten Ergebnisse: Avg(TOTAL Aggr(Sum(Sales),Customer)).
Beschränkungen:
Jede Dimension in einer Aggr()-Funktion muss ein einzelnes Feld sein und darf keine Formel (berechnete Dimension) sein.
Hinzufügen von Sortierkriterien zur Dimension im strukturierten Parameter
In seiner Grundform ist das Argument StructuredParameter in der Aggr-Funktionssyntax eine einzelne Dimension. Mit der Formel Aggr(Sum(Sales, Month)) wird der Gesamtumsatz für jeden Monat ermittelt. Bei Einschluss in einer anderen Aggregierungsfunktion kann es jedoch zu unerwarteten Ergebnissen kommen, sofern keine Sortierkriterien verwendet werden. Das liegt daran, dass manche Dimensionen numerisch, alphabetisch usw. sortiert werden können.
Im StructuredParameter-Argument in der Aggr-Funktion können Sie die Sortierkriterien für die Dimension in Ihrer Formel angeben. Auf diese Weise wenden Sie eine Sortierreihenfolge auf die virtuelle Tabelle an, die von der Aggr-Funktion erstellt wird.
Das Argument StructuredParameter weist die folgende Syntax auf:
(FieldName, (Sort-type, Ordering))
Strukturierte Parameter können verschachtelt werden:
(FieldName, (FieldName2, (Sort-type, Ordering)))
Der Sortiertyp kann NUMERIC, TEXT, FREQUENCY oder LOAD_ORDER sein.
Die mit jedem Ordnungstyp verknüpften Sortiertypen lauten wie folgt:
Sortiertyp | Zulässige Ordnungstypen |
---|---|
NUMERIC | ASCENDING, DESCENDING oder REVERSE |
TEXT | ASCENDING, A2Z, DESCENDING, REVERSE oder Z2A |
FREQUENCY | DESCENDING, REVERSE oder ASCENDING |
LOAD_ORDER | ASCENDING, ORIGINAL, DESCENDING oder REVERSE |
Die Ordnungstypen REVERSE und DESCENDING sind gleichwertig.
Für den Sortiertyp TEXT sind die Ordnungstypen ASCENDING und A2Z gleichwertig und DESCENDING, REVERSE und Z2A sind gleichwertig.
Für den Sortiertyp LOAD_ORDER sind die Ordnungstypen ASCENDING und ORIGINAL gleichwertig.