Process Mining
2021.10
False
Bannerhintergrundbild
Process Mining
Letzte Aktualisierung 2. Apr. 2024

Aggregierte Ausdrücke

Einleitung

Datensatzausdrücke verwenden nur den Wert des Datensatzes selbst als Eingabe. Im Vergleich dazu können Aggregatausdrücke verwendet werden, um Berechnungen für einen bestimmten Satz von Datensätzen durchzuführen. Zum Beispiel, um den Gesamtbetrag aller Datensätze oder die Gesamtzahl der Datensätze im Dataset zu berechnen. Ein Aggregatausdruck kann mit der Funktion GROUP BY in SQL verglichen werden.

Auf Stammebene aggregieren

Ein Aggregatausdruck berechnet einen Wert für jeden eindeutigen Wert auf Aggregatebene. Standardmäßig befindet sich dies auf der Stammebene , dh ein Wert für die gesamte Tabelle.



Nachfolgend finden Sie ein Beispiel für einen Aggregatausdruck zur Berechnung der Summe aller Beträge im Dataset „Rechnungen“.



Der Aggregatausdruck sum(records.amount) wird wie unten beschrieben ausgewertet:
  1. Nehmen Sie alle Datensätze in Rechnungenauf.
  2. Wählen Sie für jeden Datensatz den Wert des Datenquellenattributs „ Betrag “ aus.
  3. Gibt die Summe all dieser Beträge zurück.

Der Ausdruck berechnet einen einzelnen eindeutigen Wert, aber dieser Wert wird jedem Datensatz im Dataset hinzugefügt. Unten sehen Sie ein Beispiel für ein Dataset mit 4 Zeilen.



Auf Unterebene aggregieren

Anstatt ein Aggregat für das gesamte Dataset zu berechnen, können Sie auch einen Wert für Gruppen von Datensätzen berechnen.



Nachfolgend finden Sie ein Beispiel für einen Aggregatausdruck zur Berechnung des Gesamtbetrags pro Lieferant.



Eine Aggregationsebene wird hinzugefügt, und der Bereich des Ausdrucks wird auf diese neue Ebene festgelegt. Unten sehen Sie ein Beispiel-Dataset.



Der Aggregatausdruck wird einmal für jeden einzelnen Wert innerhalb der Scope-Ebene berechnet. Dieser Wert wird jedem Datensatz innerhalb dieses Scopes hinzugefügt. Der Gesamtbetrag wird also einmal berechnet und dann viermal in jeden Datensatz kopiert. Der Gesamtbetrag pro Lieferant wird dreimal berechnet. Da es 2 Datensätze mit „Lieferant A“ gibt, wird der Wert auf beide Datensätze festgelegt. Da es nur einen Datensatz für „Lieferant B“ und „Lieferant C“ gibt, wird der Wert dem entsprechenden Datensatz zugewiesen.

Definieren einer untergeordneten Ebene

Führen Sie diese Schritte aus, um einen Aggregatausdruck auf untergeordneter Ebene zu definieren.

Schritt

Aktion

1

Klicken Sie mit der rechten Maustaste auf Stamm im Bereich Einstellungen im Dialogfeld Ausdrucksattribut bearbeiten .

2

Wählen Sie Ebene hinzufügen aus.

3

Klicken Sie auf die Ebene und wählen Sie das Datenquellenattribut aus, nach dem Sie Werte gruppieren möchten. In diesem Fall Lieferant.

4

Klicken Sie mit der rechten Maustaste auf die ausgewählte Attributebene und wählen Sie Als Ausdrucksebene festlegen aus.

Hinweis: Die ausgewählte Ebene wird durch einen Pfeil angezeigt.

Struktur

In einem Aggregatausdruck ist es auch möglich, auf andere Ebenen als die ausgewählte Aggregationsebene zuzugreifen. Wir können p (für übergeordnetes Element) und c (für untergeordnetes Element) verwenden, um die Baumstruktur nach oben und unten zu durchsuchen.
Hinweis: Ein Knoten hat ein übergeordnetes Element, sodass p einen einzelnen Knoten zurückgibt, aber mehrere untergeordnete Knoten haben kann, sodass c eine Liste von Knoten zurückgibt.

Übergeordnete Aggregationsebene



Nachfolgend finden Sie ein Beispiel für einen aggregierten Ausdruck, der auf einer übergeordneten Ebene basiert.



Der Ausdruck percentage(sum(records.Amount) / sum(p.records.Amount) * 100) berechnet einen Prozentsatz für jeden Lieferanten:
  1. Die Summe der einem Lieferanten zugeordneten Beträge wird durch die Summe aller Beträge geteilt.
  2. Der Scope wird auf die übergeordnete Ebene verschoben, dh auf „root“.
  3. Das Ergebnis wird mit 100 multipliziert, um es in einen Prozentsatz umzuwandeln.

Untergeordnete Aggregationsebene



Nachfolgend finden Sie ein Beispiel für einen aggregierten Ausdruck, der auf einer untergeordneten Ebene basiert.



Der Ausdruck count(c) gibt eine Liste aller Lieferanten pro Lieferantentypzurück. Da jedes untergeordnete Element ein Lieferant ist, kann die Anzahl der untergeordneten c gezählt werden.

Erstellen von bedingten Prüfungen

Für Datensatzausdrücke kann die Funktion if() für bedingte Prüfungen verwendet werden. Diese Funktion kann jedoch nur pro Datensatz angewendet werden. Es ist nicht möglich, eine Bedingung innerhalb einer Gruppe von Datensätzen mithilfe einer if-Anweisung zu überprüfen. Die Baumstruktur kann verwendet werden, um (bestimmte Teile von) Ihren Daten zu durchlaufen, z. B. um Eigenschaften auszudrücken.


Die folgenden Funktionen können für diese Art von Berechnungen verwendet werden.

Function

Beschreibung

exists(Scope, Condition)

Gibt true zurück, wenn mindestens eine Bedingung im Scope zu true ausgewertet wird.

forall(Scope, Condition)

Gibt true zurück, wenn alle Bedingungen im Scope zu true ausgewertet werden.

Ein Beispiel finden Sie in der Abbildung unten.



Zum Beispiel der Ausdruck

exists(records, find(lower(Supplier), 'consulting')

prüft für jeden Lieferantentyp, ob Rechnungen von einem Lieferanten vorhanden sind, dessen Name „consulting“ enthält.

Hinweis: lower wird verwendet, um die Lieferantennamen in Kleinbuchstaben umzuwandeln und die Groß-/Kleinschreibung nicht zu berücksichtigen.

Filtern

Beim Aggregieren von Daten werden Berechnungen manchmal in Abhängigkeit von einem bestimmten Teil Ihrer Daten durchgeführt. In diesem Fall kann die Funktion filter() verwendet werden.


Nachfolgend finden Sie ein Beispiel für einen Aggregatausdruck, der auf einem Filter basiert.

count(
    unique(
        filter(
            records,
            supplier_type = "Machinery"
        ).Supplier
    )
)count(
    unique(
        filter(
            records,
            supplier_type = "Machinery"
        ).Supplier
    )
)

Von innen nach außen ist der Ausdruck wie folgt aufgebaut:

  1. Rufen Sie alle Datensätze innerhalb des aktuellen Scopes ab.
  2. Filtern Sie diese Datensätze, sodass nur die Datensätze übrig bleiben, die den Lieferantentyp Machinery haben.
  3. Geben Sie für jeden gefilterten Datensatz den Wert des Datenquellenattributs „ Lieferant “ zurück.
  4. Entfernen Sie alle doppelten Werte aus der Liste, sodass wir nur ein Element pro eindeutigem Wert haben.
  5. Zählen Sie die Anzahl der Elemente, die auf der Liste verbleiben.



Im Beispiel wird die Fallbesitzerebene als Ausdrucksebene festgelegt. Das bedeutet, dass der Gültigkeitsbereich des Ausdrucks darin besteht, einen Wert für alle eindeutigen Werte von Case ownerzu berechnen. Für jeden Fallbesitzerwert ist records die Liste der Datensätze, die zu diesem Fallbesitzer gehören.

Der Ausdruck gibt einen Wert für jeden Fallbesitzerzurück, der die Anzahl der eindeutigen Lieferanten vom Typ Maschineangibt.

Andere Filteroptionen

Das Menü im Panel Einstellungen enthält Optionen zum Hinzufügen von Filtern für Aggregate.



Nachfolgend finden Sie eine Beschreibung der Optionen des Menüs Einstellungen.

Option

Beschreibung

Filterausdruck aktivieren

Ermöglicht Ihnen die Eingabe eines Ausdrucks als Filter.

Filtersteuerelemente aktivieren

Öffnet das Dialogfeld Filtersteuerelemente bearbeiten , in dem Sie ein verfügbares Filtersteuerelement aus der Liste auswählen können.

Vergleichszeitraum aktivieren

Ermöglicht Ihnen das Hinzufügen eines Vergleichszeitraums oder eines Ausdrucks, um eine Reihe früherer Zeiträume zum Filtern zu definieren.

Anwenden von Endbenutzerfiltern

Ermöglicht Ihnen, verfügbare Endbenutzerfilter anzuwenden.

Hinweis: Wenn Sie die Filteroptionen im Menü Einstellungen verwenden, wird das Ergebnis des Filters im Bereich „Wert“ angezeigt. Ein Beispiel finden Sie in der Abbildung unten.


Sortierung

Die Sortierung kann verwendet werden, um den höchsten oder niedrigsten Wert zu bestimmen oder um Datensätze in einer bestimmten Reihenfolge zu verarbeiten.

Wenn Sie den ersten oder letzten Datensatz für Ihren Ausdruck benötigen, können Sie auf einer Ebene wie folgt sortieren:

  • A..Z und Z..A werden nach dem Wert sortiert.

    • Bei Zeichenfolgen wird dies in alphabetischer Reihenfolge sortiert.
    • Bei numerischen Formaten (double, integer) wird nach einem numerischen Wert sortiert.
    • Bei zeitbezogenen Formaten (datetime, date) wird in chronologischer Reihenfolge sortiert.
  • 0..9 und 9..0 werden nach der Anzahl der Datensätze in der Gruppe sortiert.
  • Mit Ausdruck können Sie einen Ausdruck eingeben, der wie oben beschrieben nach Wert sortiert wird.

Für jede dieser Sortieroptionen ist es möglich, die Reihenfolge auf aufsteigend oder absteigend festzulegen.

In der folgenden Abbildung finden Sie ein Beispiel für die Sortierung, bei der der erste Benutzer bestimmt wird, der an jedem Fall arbeitet.



Der Aggregatausdruck first(records.User) bestimmt die erste User von jedem Case ID . Event end wird in aufsteigender Reihenfolge sortiert.

War diese Seite hilfreich?

Hilfe erhalten
RPA lernen – Automatisierungskurse
UiPath Community-Forum
UiPath Logo weiß
Vertrauen und Sicherheit
© 2005-2024 UiPath. All rights reserved.