Zu Hauptinhalt springen

Aggregierungsfunktionen

Die als Aggregierungsfunktionen bezeichnete Funktionsgruppe besteht aus Funktionen, die mehrere Feldwerte als Eingabe verwenden und ein einzelnes Ergebnis pro Gruppe zurückgeben, wobei die Gruppierung durch eine Diagrammdimension oder eine group by-Bedingung in der Skriptanweisung definiert wird.

Aggregierungsfunktionen umfassen Sum(), Count(), Min(), Max() und viele weitere.

Die meisten Aggregierungsfunktionen können sowohl im Datenladeskript als auch in den Diagrammformeln verwendet werden, jedoch variiert die Syntax.

Verwenden von Aggregierungsfunktionen in einem Datenladeskript

Aggregierungsfunktionen können nur innerhalb von LOAD - und SELECT-Anweisungen verwendet werden.

Aggregierungsfunktionen in Diagrammformeln verwenden

Der Parameter der Aggregierungsfunktion darf keine anderen Aggregierungsfunktionen enthalten, es sei denn, diese inneren Aggregierungen enthalten den Qualifizierer TOTAL. Für komplexere verschachtelte Aggregierungen benutzen Sie bitte die erweiterte Aggr-Funktion in Verbindung mit einer angegebenen Dimension.

Die Aggregierungsfunktion berechnet sich über alle wählbaren Werte. Alternativ können Sie die der Berechnung zugrunde liegenden Werte jedoch über eine Auswahlformel bestimmen.

Aggregierung und Auswahlformeln

Berechnung von Aggregierungen

Eine Aggregierung durchläuft die Datensätze einer bestimmten Tabelle in Schleifen und aggregiert die darin enthaltenen Datensätze. Beispielsweise wird mit Count(<Field>) die Anzahl der Datensätze in der Tabelle gezählt, in der sich <Field> befindet. Wenn Sie nur die distinkten Feldwerte aggregieren möchten, müssen Sie die distinct -Bedingung verwenden, beispielsweise Count(distinct <Field>).

Wenn die Aggregierungsfunktion Felder aus verschiedenen Tabellen enthält, durchläuft sie die Datensätze des Kreuzprodukts der Tabellen der sie bildenden Felder in einer Schleife. Dies bringt Leistungseinbußen mit sich, und aus diesem Grund sollten derartige Aggregierungen insbesondere bei großen Datenmengen vermieden werden.

Aggregierung von Schlüsselfeldern

Aufgrund der Art und Weise, wie Aggregierungen berechnet werden, können keine Schlüsselfelder aggregiert werden, weil nicht klar ist, welche Tabelle für die Aggregierung verwendet werden sollte. Wenn beispielsweise das Feld <Key> zwei Tabellen verknüpft, ist nicht klar, ob Count(<Key>) die Anzahl der Datensätze der ersten oder der zweiten Tabelle zurückgeben soll.

Wenn Sie aber die distinct-Bedingung verwenden, ist die Aggregierung korrekt definiert und kann berechnet werden.

Wenn Sie also ein Schlüsselfeld innerhalb einer Aggregierungsfunktion ohne die distinct-Bedingung verwenden, gibt QlikView möglicherweise eine Zahl zurück, die keinen Sinn ergibt. Als Lösung verwenden Sie entweder die distinct-Bedingung oder eine Kopie des Schlüssels, die sich in nur einer Tabelle befindet.

Beispiel: In den folgenden Tabellen ist ProductID der Schlüssel zwischen den Tabellen.

ProductID-Schlüssel zwischen den Tabellen „Products“ und „Details“

Beispiel für aktuelle Auswahlen

Count(ProductID) kann entweder in der Tabelle Products (mit nur einem Datensatz pro Produkt und ProductID als primärem Schlüssel) oder in der Tabelle Details (die wahrscheinlich mehrere Datensätze pro Produkt enthält) gezählt werden. Wenn Sie die Anzahl der unterschiedlichen Produkte zählen möchten, sollten Sie Count(distinct ProductID) verwenden. Wenn Sie die Anzahl der Zeilen in einer bestimmten Tabelle zählen möchten, sollten Sie den Schlüssel nicht verwenden.

Nehmen Sie am Analyse-Modernisierungsprogramm teil

Remove banner from view

Modernisieren Sie mit dem Analyse-Modernisierungsprogramm, ohne Ihre wertvollen QlikView-Apps zu gefährden. Klicken Sie hier für weitere Informationen oder kontaktieren Sie uns: ampquestions@qlik.com