SAP Signavio Process Intelligence SIGNAL-Referenz - Alle Versionen
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Inhaltsverzeichnis 1 SIGNAL Referenz 5 1.1 Datenmodell 5 1.2 Datentypen 7 1.3 Process Mining 7 1.4 SIGNAL Syntax 8 1.4.1 Syntaxnotation 8 1.4.2 Schlüsselwörter 8 1.4.3 Attribute 8 1.4.4 Zeichenfolgeliterale 9 1.4.5 Dezimalliterale 10 1.5 SIGNAL SELECT-Anweisung und -Klauseln 11 1.5.1 SELECT-Anweisung 11 1.5.2 Unterabfragen 13 1.5.3 SELECT (DISTINCT)-Klausel 14 1.5.4 FROM-Klausel 15 1.5.5 WHERE-Klausel 15 1.5.6 GROUP BY-Klausel 16 1.5.7 ORDER BY-Klausel 18 1.5.8 FILL-Klausel 19 1.5.9 LIMIT-Klausel 21 1.5.10 TABLESAMPLE-Klausel 22 1.5.11 OFFSET-Klausel 23 1.5.12 FLATTEN-Operator 24 1.5.13 UNION ALL-Operator 25 1.6 SIGNAL Aliase 26 1.7 SIGNAL-Ausdrücke 28 1.7.1 CASE WHEN-Ausdruck 28 1.8 SIGNAL Funktionen 31 1.8.1 Aggregatfunktionen 32 1.8.2 Arithmetische Funktionen 38 9/2/2022
1.8.3 Datumsfunktionen 46 1.8.4 Fensterfunktionen 50 1.8.5 Histogrammfunktionen 61 1.9 SIGNAL Operatoren 64 1.9.1 Arithmetische Operatoren 64 1.9.2 Vergleichsoperatoren 65 1.9.3 Logische Operatoren 65 1.9.4 Übereinstimmungsoperatoren 66 1.9.5 Operatoren für NULL-Werte 70 1.10 SIGNAL Schlüsselwörter 71 2 SIGNAL Tutorial 76 2.1 Verstehen des Beispielprozesses 80 2.2 Zählen von Fällen und Städten 81 2.2.1 Beispiel 1: Wie viele Fälle sind für diesen Prozess vorhanden? 81 2.2.2 Beispiel 2: Wie viele verschiedene Städte sind an diesem Prozess beteiligt?82 2.2.3 Beispiel 3: Wie viele Fälle gibt es pro Stadt? 83 2.2.4 Beispiel 4: Wie viele Fälle gibt es für New York und Miami? 85 2.3 Analysieren von Bestellbeträgen 87 2.3.1 Beispiel 1: Wie hoch ist der durchschnittliche Bestellbetrag dieses Prozesses? 87 2.3.2 Beispiel 2: Wie hoch ist der durchschnittliche Bestellbetrag in Houston? 88 2.3.3 Beispiel 3: Wie hoch ist die Gesamtauftragssumme in Boston? 88 2.3.4 Beispiel 4: Wie hoch ist der prozentuale Bestellbetrag in Boston im Ver- gleich zur Gesamtauftragssumme? 89 2.4 Ermitteln von Falldurchlaufzeiten 90 2.4.1 Beispiel 1: Was ist die durchschnittliche Durchlaufzeit aller Fälle? 90 2.4.2 Beispiel 2: Was ist die durchschnittliche Durchlaufzeit pro Stadt? 91 2.4.3 Beispiel 3: Was sind die maximalen/minimalen Durchlaufzeiten pro Stadt? 92 2.5 Analysieren von Ereignissen 94 2.5.1 Beispiel 1: Wie viele Fälle wurden geschlossen/storniert? 94 2.5.2 Beispiel 2: Wie hoch ist die Abbruchrate? 96 2.5.3 Beispiel 3: Wie viele Fälle folgen dem Standardprozess? 96 9/2/2022
2.5.4 Beispiel 4: Wie viele Fälle werden storniert, obwohl das T-Shirt zum Drucken gesendet wurde? 98 9/2/2022
1 SIGNAL Referenz 1 SIGNAL Referenz SIGNAL – SAP Signavio Analysesprache – ist eine spezialisierte Abfragesprache für die Prozessanalyse. Die Sprache basiert auf SQL. Wie bei SQL verwenden Sie Abfragen, um Daten abzurufen und Berechnungen zu den Daten durchzuführen. Es ist jedoch nicht möglich, Prozessdaten zu ändern oder zu löschen. Der Unterschied zu SQL besteht im Datenmodell. Während Sie normalerweise Daten aus mehreren Tabellen mit SQL abfragen, fragt SIGNAL die Daten aus nur einer Tabelle ab, die verschachtelte Ereignisse enthält. Darüber hinaus bietet SIGNAL zahlreiche benutzerdefinierte Funktionen, um effektiver mit dieser Daten- struktur zu arbeiten. SIGNAL ist für Process Mining optimiert, um beispielsweise Konformität, Zykluszeiten und Nacharbeit zu ermitteln, und unterstützt die Erkundung in großem Maßstab durch alle Arten von SAP Signavio Process Intelligence-Ben- utzern. Mit SIGNAL können Sie nur Daten aus Prozessen abrufen, auf die Sie Zugriff haben. 1.1 Datenmodell Beim Mining der Daten eines Prozesses rufen Sie die Daten einer einzelnen Tabelle ab. Diese Tabelle enthält die Fallattribute und die zugehörigen ver- schachtelten Ereignisse und Ereignisattribute. Die folgende Tabelle stellt diese verschachtelte Struktur dar. 9/2/2022
1 SIGNAL Referenz cas- Kun- Stat- Sta- Ereign- e_ den- us dt isse ID ID event_ Stor- end_time Zahlweg name nogrund Receive 2020-07- cus- 01T09:00- tomer :00 order 100- gelie- Ber- 2001 1 fert lin 2020-07- Zahlung Über- 02T10:00- erhalten weisung :00 Waren 2020-07- versend- 03T11:00- en :00 event_ Zahl- Stor- end_time name weg nogrund Receive 2020-07- cus- 100- stor- 04T13:00:- 2002 tomer 2 niert 00 order Auftrag 2020-07- Falsche stornier- 04T14:00:- Größe en 00 Die Spalten case_id, event_name und end_time sind immer vorhanden. Fallattribute wie Kunden-ID, Status und Stadt haben im gesamten Fall denselben Wert. Zusätz- liche Ereignisattribute, in diesem Beispiel Zahlweg und Stornogrund, können für jedes Ereignis unterschiedliche Werte aufweisen. Es gibt zwei Möglichkeiten, über diese Daten zu iterieren: 9/2/2022
1 SIGNAL Referenz o nach Fall Jeder Fall wird als einzelne Zeile behandelt. Die verschachtelten Ereignisse und Ereignisattribute werden als verschachtelte Tabelle dargestellt. o nach Ereignis Jedes Ereignis wird als einzelne Zeile behandelt. Die Fall-ID und die Fal- lattribute werden für jedes Ereignis wiederholt. 1.2 Datentypen Der Datentyp einer Spalte legt fest, welcher Wert in der Spalte enthalten sein darf. Alle Datentypen können sowohl auf Fallebene als auch auf Ereignisebene (verschachtelt) auftreten. SIGNAL unterstützt die folgenden Datentypen: o Zeichenfolgen o Zahlen, die als Gleitpunkte mit doppelter Genauigkeit gespeichert sind o Zeitstempel, die mit Millisekundengenauigkeit ohne Zeitzoneninformationen gespeichert sind o Zeitdauerangaben, die mit Millisekundengenauigkeit gespeichert sind o Boolesche Werte Alle diese Datentypen können in der Quelldatei und im Abfrageergebnis angezeigt werden. Sowohl Fall- als auch Ereignisattribute können null sein, was auf das Fehlen eines Werts oder auf einen unbekannten Wert hinweist. 1.3 Process Mining SIGNAL Abfragen werden in den Widgets einer Investigation verwendet. Beim Konfigurieren von Widgets haben Sie folgende Optionen: o Eigene Abfragen anlegen o Standardabfragen in den Widgets verwenden und ggf. anpassen 9/2/2022
1 SIGNAL Referenz o Vordefinierte Abfragen aus der Metrikbibliothek verwenden und ggf. anpassen o Eigene Abfragen zur Wiederverwendung zur Metrikbibliothek hinzufügen Weitere Informationen zu Widgets finden Sie im Abschnitt Widgets. 1.4 SIGNAL Syntax Die Syntax von SIGNAL basiert auf SQL, wurde jedoch um Funktionen zum Aus- führen detaillierter Prozessanalyseabfragen erweitert. Alle Abfragen folgen immer dieser Grundstruktur: SELECT expressions FROM table /process WHERE conditions 1.4.1 Syntaxnotation Die Notation für die Abfragesyntax folgt diesen Notationsregeln. Beachten Sie, dass diese Notation nicht Teil der Abfrage ist: o Die eckigen Klammern kennzeichnen optionale Bestandteile. Beispiel: [WHERE condition] o Das Pipe-Symbol zeigt eine Auswahl aus mehreren Optionen an. Beispiel: ASC | DESC 1.4.2 Schlüsselwörter Schlüsselwörter werden immer in Großbuchstaben geschrieben. Dadurch lassen sie sich von Benutzerausdrücken unterscheiden. Weitere Informationen zu Schlüsselwörtern finden Sie im Abschnitt SIGNAL Schlüsselwörter. 1.4.3 Attribute Bei Attributnamen wird nicht zwischen Groß- und Kleinschreibung unterschieden. In den folgenden Fällen muss der Attributname in doppelte Anführungszeichen gesetzt werden: 9/2/2022
1 SIGNAL Referenz o Das Attribut wird wie ein reserviertes SIGNAL-Schlüsselwort benannt. o Das Attribut beginnt nicht mit einem Buchstaben oder einem Unterstrich. o Der Attributname enthält andere Zeichen als Buchstaben, Zahlen oder Unterstriche. o Wenn der Attributname in doppelte Anführungszeichen gesetzt ist, muss der gesamte Ausdruck in doppelte Anführungszeichen gesetzt werden. Beispiel: "Premium User" -> ""Premium User"" o Wenn der Attributname ein oder mehrere doppelte Anführungszeichen enthält, muss auf diese doppelten Anführungszeichen ein doppeltes Anführungszeichen folgen. Beispiel: Width in " (inches) -> "Width in "" (inches)" o Wenn der Attributname ein oder mehrere einfache Anführungszeichen enthält, muss auf diese einfachen Anführungszeichen ein doppeltes Anführungszeichen folgen. Beispiel: O'Reilly -> "O'"Reilly" Bei Attributwerten wird zwischen Groß- und Kleinschreibung unterschieden. Sie müssen immer in einfache Anführungszeichen gesetzt werden. Für SIGNAL sind die folgenden vordefinierten semantischen Attribute immer vorhanden: o case_id: eindeutiger Identifikator des Falls o event_name: Ereignisnamen des Falls sortiert nach ihrer Zeit o end_time: Endezeitstempel der Ereignisse eines Falls o start_time: Startzeitstempel der Ereignisse eines Falls, kann null sein, wenn in den Quelldaten nicht verfügbar Die Syntaxregeln für semantische Attribute sind dieselben wie für die anderen Attribute. 1.4.4 Zeichenfolgeliterale Zeichenfolgeliterale werden immer in einfache Anführungszeichen eingeschlossen. Wenn ein Zeichenfolgeliteral ein oder mehrere einfache Anführungszeichen enthält, muss auf diese einfachen Anführungszeichen ein 9/2/2022
1 SIGNAL Referenz einfaches Anführungszeichen folgen. Beispiel: O'Reilly -> 'O''Reilly' 1.4.5 Dezimalliterale Für Dezimalliterale gelten folgende Konventionen: o 0-9 o 1.5 | .5 o 1e-10 | .5e+1000 1.4.5.1 DATE/TIMESTAMP-Literal Mit der DATE/TIMESTAMP-Literalfunktion geben Sie einen Zeitstempel als Lit- eral an. Syntax: DATE 'literal' TIMESTAMP 'literal' Parameter Beschreibung Die Datums- oder Zeitstempelinformationen, z. B. literal DATE '2019-12-24' und TIMESTAMP '2019-12-24T12:00:00' . 1.4.5.2 DURATION-Literal Mit der Funktion DURATION geben Sie ein Literal für die Dauer an, das in ein Zeitintervall geparst wird. Syntax: DURATION 'literal' 9/2/2022
1 SIGNAL Referenz Parameter Beschreibung Ein numerischer Wert zur Angabe der Zeit und eine Zeichenfolge zur Angabe der Zeiteinheit, z. B. '3weeks', '4days', '3hours', '5minutes', '6seconds' und '7milliseconds'. Eine kombinierte Verwendung ist möglich, z. B. '1day1hour'. literal Für alle DURATION-Zeichenfolgen werden die Singular- und Pluralformen unterstützt. Sie können auch die Norm ISO-8601 verwenden, z. B. P1D6H30M. Beispiel: SELECT COUNT(case_id) FROM THIS_PROCESS WHERE (SELECT LAST(EndTime) - FIRST(EndTime)) > DURATION '10days' Diese Abfrage gibt die Anzahl der Fälle in diesem Prozess zurück, bei denen mehr als 10 Tagen zwischen der Startzeit und der Endzeit liegen. 1.5 SIGNAL SELECT-Anweisung und -Klauseln In diesem Abschnitt wird die Verwendung der SELECT-Anweisung und Klauseln in SIGNAL erläutert. 1.5.1 SELECT-Anweisung Die SELECT-Anweisung wird verwendet, um Daten aus einem Prozess aus- zuwählen. Die zurückgegebenen Daten bilden die Ergebnismenge. Syntax: SELECT expressions FROM table [TABLESAMPLE] [WHERE] [GROUP BY] [UNION ALL] [ORDER BY] 9/2/2022
1 SIGNAL Referenz [FILL] [LIMIT] [OFFSET] Parameter Beschreibung expressions Die Spalten oder Berechnungen, die Sie abrufen möchten. table Die Tabelle, aus der Sie Datensätze abrufen möchten. Geben Sie den absoluten oder prozentualen Tabellenanteil an, TABLESAMPLE der für die Abfrage berücksichtigt werden soll. Die Bedingung, die erfüllt sein muss, damit die Datensätze aus- WHERE condition gewählt werden. Wenn keine Bedingung angegeben wird, wer- den alle Datensätze ausgewählt. Der Index eines ausgewählten Ausdrucks, der zum Sortieren der Datensätze in der Ergebnismenge ver- wendet wird. Wenn mehrere Ausdrücke angegeben sind, trennen Sie die Werte durch ein Komma. ASC sortiert die Ergebnismenge in aufsteigender Rei- ORDER BY index henfolge nach expression, DESC sortiert sie in absteigender Reihenfolge. NULLS FIRST sortiert die Ergebnismenge so, dass Null- werte zuerst, NULLS LAST so, dass Nullwerte zuletzt aufgeführt werden. Sammelt Daten über mehrere Datensätze hinweg und gruppiert die Ergebnisse in einer oder mehreren Spalten. Die GROUP GROUP BY BY-Klausel erfordert einen Index, der der ORDER BY-Klausel ähnelt. Sie können einen oder mehrere Indizes verwenden. Verkettet die Ergebnismengen von mehreren SELECT - UNION ALL Anweisungen. FILL Funktion zum Füllen von Ergebnissen. LIMIT Die Anzahl der Datensätze in der Ergebnismenge. Der Ausgangspunkt für das Zurückgeben von Zeilen aus einer OFFSET Ergebnismenge. 9/2/2022
1 SIGNAL Referenz Beispiel: SELECT column1, column2 FROM table Parameter Beschreibung column1, column2 Die Spalten, aus denen Sie Datensätze abrufen möchten. table Die Tabelle, aus der Sie Datensätze abrufen möchten. Diese Abfrage gibt die Daten von column1 und column2 aus der angegebenen Tabelle zurück. Es ist mit nur wenig Aufwand verbunden, mehrere Attribute auszuwählen und die Ergebnismenge zu sortieren und zu begrenzen. Beispiel: SELECT case_id, Status, "Customer ID" FROM table ORDER BY 2 DESC LIMIT 10 Diese Abfrage gibt die Fall-ID, den Status und die Kunden-ID der ersten zehn Fälle in der Tabelle zurück. ORDER BY 2 DESC gibt an, dass die Ergebnismenge gemäß der zweiten Spalte Status in absteigender Reihenfolge sortiert werden soll. 1.5.2 Unterabfragen Eine Unterabfrage ist eine Abfrage, die in einerSELECT-Anweisung oder in einer anderen Unterabfrage verschachtelt ist. Sie können eine Unterabfrage überall dort verwenden, wo ein Ausdruck Daten auf Ereignisebene abrufen darf. Unterabfragen sind sowohl in der FROM-Klausel als auch im FLATTEN-Operator erlaubt. Syntax: SELECT ( SELECT(event_name)) FROM table 9/2/2022
1 SIGNAL Referenz Parameter Beschreibung Die Spalte oder der Ausdruck, aus der/dem Sie das erste Element event_name abrufen möchten. table Die Tabelle, aus der Sie Datensätze abrufen möchten. 1.5.3 SELECT (DISTINCT)-Klausel Die SELECT DISTINCT-Klausel gibt eine Tabelle mit den eindeutigen Werten des ausgewerteten Ausdrucks zurück. Wenn NULL-Werte vorhanden sind, wer- den sie eingeschlossen. Diese Funktion wird in Unterabfragen nicht unterstützt. Syntax: SELECT DISTINCT expression FROM table Parameter Beschreibung Die Spalte, der Ausdruck oder das Ereignisattribut, die/der- expression /das zurückgegeben wird. Wenn mehrere Ausdrücke angegeben sind, trennen Sie die Werte durch ein Komma. table Die Tabelle, für die Sie die Datensätze zählen möchten. Beispiel 1 (Fallebene): SELECT DISTINCT city FROM THIS_PROCESS ORDER BY 1 ASC Diese Abfrage gibt eine eindeutige Liste von Orten in aufsteigender Reihenfolge zurück. Doppelte Zeilen werden aus der Ergebnismenge entfernt, sodass jede Stadt nur einmal angezeigt wird. Beispiel 2 (Ereignisebene ohne FLATTEN): SELECT DISTINCT event_name AS "Event Name:" FROM THIS_PROCESS 9/2/2022
1 SIGNAL Referenz Diese Abfrage gibt eine Tabelle zurück, die nach eindeutigen Ereignislisten, d. h. nach unterschiedlichen Ereignissequenzen, gruppiert ist. Doppelte Zeilen wer- den aus der Ergebnismenge entfernt, sodass jede Ereignissequenz nur einmal vorkommt. Beispiel 3 (Ereignisebene mit FLATTEN): SELECT DISTINCT event_name FROM FLATTEN (THIS_PROCESS) ORDER BY 1 ASC Diese Abfrage gibt eine eindeutige Liste von Ereignissen in aufsteigender Rei- henfolge zurück. Doppelte Zeilen werden aus der Ergebnismenge entfernt, sodass jedes Ereignis nur einmal angezeigt wird. 1.5.4 FROM-Klausel Die FROM-Klausel wird verwendet, um den Prozess anzugeben, aus dem die Daten abgerufen werden sollen. Syntax: FROM table Parameter Beschreibung Die Tabelle, aus der Sie Datensätze abrufen möchten. Sie können den Prozess über den Ausdruck THIS_PROCESS oder die Prozess-ID table referenzieren. Sie finden die Prozess-ID in den Prozesseinstellungen auf dem Tab API. 1.5.5 WHERE-Klausel Die WHERE-Klausel wird verwendet, um die Ergebnisse zu filtern und Bedin- gungen auf die SELECT-Anweisung anzuwenden. Syntax: WHERE condition Parameter Beschreibung Die Bedingung, die erfüllt sein muss, damit Sie Datensätze aus- condition wählen können. 9/2/2022
1 SIGNAL Referenz 1.5.6 GROUP BY-Klausel Die GROUP BY-Klausel wird verwendet, um das Ergebnis einer SELECT- Anweisung nach den Ausdrücken an den angegebenen Indizes zu gruppieren. Beispiel: GROUP BY 1, 2 gruppiert das Ergebnis entsprechend dem ersten und zweiten Ausdruck. Alle Zeilen, die dieselben Werte für die gruppierten Ausdrücke haben, werden in einer einzigen Zeile verdichtet. Die GROUP BY-Klausel wird häufig mit Aggregatfunktionen verwendet, z. B. COUNT, MAX, MIN und AVG. Weitere Informationen hierzu finden Sie im Abschnitt Aggregatfunktionen. Eine Aggregatfunktion wird über alle Zeilen der einzelnen Gruppen hinweg berechnet und gibt für jede Gruppe einen separaten Wert zurück. Die GROUP BY-Klausel ist optional. Wenn die GROUP BY-Klausel nicht vorhanden ist, gilt Folgendes: o Wenn es Aggregat- und Nicht-Aggregatausdrücke in der SELECT- Anweisung gibt, dann wird das Ergebnis automatisch nach beliebigen Nicht-Aggregatausdrücken gruppiert. o Wenn es in der SELECT -Anweisung nur Aggregatausdrücke gibt, ist das Ergebnis eine einzige Gruppe, die alle selektierten Zeilen umfasst. Um die Zeilen anzugeben, die für die Aggregation berücksichtigt werden sollen, können Sie die FILTER-Klausel auf die Aggregatfunktion anwenden. Wenn die GROUP BY-Klausel vorhanden ist, gilt Folgendes: o Sie müssen in der SELECT-Anweisung nach allen Ausdrücken gruppieren, die nicht durch eine Aggregatfunktion gekapselt sind. Ausnahme: Der nicht gruppierte Ausdruck hängt funktional von einem gruppierten Ausdruck ab (siehe Beispiel 2 unten). o Sie können nicht nach einem Ausdruck gruppieren, der eine Aggreg- atfunktion enthält. Syntax: SELECT expression1, expression2, ... expression_n, aggregate_function (aggregate_expression) FROM table GROUP BY index [, ...] 9/2/2022
1 SIGNAL Referenz Parameter Beschreibung Die 1-basierte Indizierung der Ausdrücke in der SELECT- Klausel, die nicht innerhalb einer Aggregatfunktion gekapselt sind. Der Ausdruck bezieht sich entweder auf ein Attribut auf Fal- index [, ...] lebene, z. B. „city“ , oder auf ein Attribut auf Ereignisebene, z. B. „event-name“. Im ersten Fall wird die Tabelle nach Städten gruppiert. Im zweiten Fall wird die Tabelle nach der Liste der identischen Ereignissequenzen gruppiert. Dies ist hilfreich, um Prozessvarianten zu identifizieren. aggregate_func- Eine Aggregatfunktion wie die Funktionen SUM, COUNT, MIN, tion MAX oder AVG. aggregate_ Die Spalte oder der Ausdruck, für die bzw. den die Aggreg- expression atfunktion verwendet wird. table Die Tabelle, aus der Sie Datensätze abrufen möchten. Beispiel 1: SELECT city, region, COUNT(case_id) FROM THIS_PROCESS GROUP BY 1, 2 GROUP BY 1, 2 gruppiert gemäß den Ausdrücken in der SELECT-Anweisung, die nicht durch eine Aggregationsfunktion gekapselt sind. Da diese SELECT- Anweisung die beiden Ausdrücke (city und region) enthält, muss sich der GROUP BY-Index auf beide Ausdrücke beziehen. GROUP BY 1 oder GROUP BY 2 ist in diesem Fall nicht gültig. Beispiel 2 SELECT order_amount, order_amount*2.50, COUNT(case_id) FROM THIS_PROCESS GROUP BY 1 Da der zweite Ausdruck order_amount*2.50 funktional von der ersten Spalte order_ amount abhängig ist, ist GROUP BY 1 in diesem Fall gültig. 9/2/2022
1 SIGNAL Referenz 1.5.7 ORDER BY-Klausel Die ORDER BY-Klausel wird verwendet, um die Ergebnismenge in aufsteigender oder absteigender Reihenfolge zu sortieren und ein oder mehrere Sortierkriterien hinzuzufügen. Syntax: SELECT expression FROM table ORDER BY order_index [, ...] [ASC | DESC] [NULLS FIRST | NULLS LAST] Parameter Beschreibung expression Die Spalten oder Berechnungen, die Sie abrufen möchten. table Die Tabelle, aus der Sie Datensätze abrufen möchten. Der 1-basierte Index eines ausgewählten Ausdrucks, der zum Sortieren der Datensätze in der Ergebnismenge verwendet wird. order index [, ...] Wenn mehrere Ausdrücke angegeben sind, trennen Sie die Werte durch ein Komma. ASC sortiert die Ergebnismenge in aufsteigender Rei- henfolge nach order_expression, DESC sortiert sie in [ ASC | DESC ] absteigender Reihenfolge. [NULLS FIRST | NULLS FIRST | NULLS LAST sortiert die Ergebnismenge NULLS LAST] in Reihenfolge nach den Nullwerten, die zuerst bzw. zuletzt in der Liste aufgeführt sind. Standardmäßig wird nach den zuerst aufgeführten Werten sortiert. Beispiel: SELECT case_ID, discount, customer FROM THIS_PROCESS ORDER BY 2 DESC NULLS FIRST, 3 ASC Diese Abfrage gibt alle Rabatte in diesem Prozess zurück und sortiert sie in absteigender Reihenfolge, wobei die Liste mit Fällen ohne Rabatt beginnt. Zusätzlich werden die Ergebnisse nach Kundennamen in aufsteigender Rei- henfolge sortiert. 9/2/2022
1 SIGNAL Referenz 1.5.8 FILL-Klausel Die FILL-Klausel wird verwendet, um Ergebnisse gemäß der Füllspezifikation mit Werten zu füllen. Syntax: SELECT expression FROM table GROUP BY index 1...n FILL specification 9/2/2022
1 SIGNAL Referenz Parameter Beschreibung expression Die Spalten oder Berechnungen, die Sie abrufen möchten. table Die Tabelle, aus der Sie Datensätze abrufen möchten. Die Füllspezifikation für die einzelnen ausgewählten Aus- drücke in der Reihenfolge, in der diese Ausdrücke nach SELECT erscheinen. TIMESERIES(date_part): füllt Lücken in der Ergeb- nismenge für eine Zeitreihe mit NULL gemäß dem Aus- druck. Der Genauigkeitsgrad (date_part) wird in einfachen Anführungszeichen für die Zeitreihenlücken angegeben: Verfügbare Werte: o year o quarter o month o week (Verwendung von Wochennummern gemäß ISO 8601) specification o day o hour GROUP: Füllt alle Gruppierungsausdrücke (die in GROUP BY referenziert sind), indem derselbe Wert jedes Mal wiederholt wird, wenn ein Zeitstempel innerhalb dieser Gruppe hinzugefügt wird. NULL: füllt alle Ergebnisse mit NULL. Kein weiterer Aus- druck erforderlich. Die TIMESERIES-Spezifikation ist erforderlich. Spezi- fikationen können am Ende weggelassen und dann stand- ardmäßig auf NULL gesetzt werden. Wenn der erste Ausdruck jedoch beispielsweise eine Aggregation ist, muss NULL angegeben werden. 9/2/2022
1 SIGNAL Referenz Beispiel: SELECT DATE_TRUNC('month', (SELECT FIRST(end_time))), "City", COUNT(case_id) FROM THIS_PROCESS ORDER BY 2,1 FILL TIMESERIES('month'), GROUP, NULL Diese Abfrage füllt die Lücken in den Zeitreihen für die ausgewählte Zeitdauer. 1.5.9 LIMIT-Klausel Mit der LIMIT-Klausel können Sie die Anzahl der Zeilen angeben, die zurück- gegeben werden sollen. In der Regel verwenden Sie diese Klausel zusammen mit der ORDER BY-Klausel. Ohne LIMIT-Klausel ist die Ergebnismenge standardmäßig auf 500 Zeilen bes- chränkt. Durch Festlegen der LIMIT-Klausel können Sie den Standardgrenzwert verringern oder erhöhen. Syntax: SELECT expression FROM table LIMIT number Parameter Beschreibung expression Die Spalte oder der Ausdruck, die bzw. den Sie abrufen möchten. table Die Tabelle, aus der Sie Datensätze abrufen möchten. number Die Anzahl der Zeilen in der Ergebnismenge. Beispiel: SELECT discount FROM THIS_PROCESS LIMIT 5 Diese Abfrage gibt die ersten 5 Zeilen mit Rabatten in diesem Prozess zurück. 9/2/2022
1 SIGNAL Referenz 1.5.10 TABLESAMPLE-Klausel Mit der TABLESAMPLE-Klausel können Sie entweder den absoluten oder den prozentualen Tabellenanteil angeben, der für die Abfrage berücksichtigt werden soll. Der Tabellenanteil wird nach Auswertung der FROM-Klausel und vor allen anderen Klauseln nach dem Zufallsprinzip abgetastet. Syntax: SELECT expression FROM table TABLESAMPLE sampling method (sampling amount) REPEATABLE (seed ) Parameter Beschreibung Die Spalte oder der Ausdruck, die bzw. den Sie abrufen expression möchten. table Die Tabelle, aus der Sie Datensätze abrufen möchten. Methode der Probe- Die Methode der Probenahme. Derzeit wird nur EXACT unter- nahme stützt. Stichprobenmenge Die Stichprobenmenge; entweder absolut oder prozentual. Die optionale Seed-Nummer, die für die Generierung von Seed Zufallszahlen für die Methode der Probenahme verwendet werden soll. Beispiel: SELECT „Order Amount in EUR“, „Duration Order To Payment“ FROM (SELECT „Order Amount in EUR“, (SELECT LAST (end_time) FILTER (WHERE event_name = „Receive Payment“)) - (SELECT FIRST (end_time) FILTER (WHERE event_name = „Receive Customer Order“) ) AS „Duration Order To Payment“ FROM THIS_PROCESS WHERE („Order Amount in EUR“ IS NOT NULL) AND ((SELECT LAST (end_time) FILTER (WHERE event_name = „Receive Payment“)) - (SELECT FIRST (end_time) FILTER (WHERE event_name = „Receive Customer Order“)) 9/2/2022
1 SIGNAL Referenz IS NOT NULL)) AS sub_query TABLESAMPLE EXACT(10 ROWS) REPEATABLE(123) Diese Abfrage gibt 10 Zeilen mit Zufallsstichproben aus der angegebenen Tabelle zurück. Für TABLESAMPLE EXACT(10 PERCENT) REPEATABLE(123) gibt die Abfrage 10 Prozent der zufällig abgetasteten Zeilen aus der angegebenen Tabelle zurück. 1.5.11 OFFSET-Klausel Mithilfe der OFFSET-Klausel können Sie angeben, dass der Startpunkt Zeilen aus einer Ergebnismenge zurückgeben soll. Syntax: SELECT expression FROM table LIMIT number OFFSET offset_number Parameter Beschreibung expression Die Spalte oder der Ausdruck, die bzw. den Sie abrufen möchten. table Die Tabelle, aus der Sie Datensätze abrufen möchten. number Die Anzahl der Zeilen in der Ergebnismenge. Die Anzahl an Zeilen, die beginnend oben in der Tabelle über- offset_number sprungen werden sollen. Beispiel: SELECT discount FROM THIS_PROCESS LIMIT 5 OFFSET 10 Diese Abfrage gibt die Rabatte in den Zeilen 11 bis 16 zurück. 9/2/2022
1 SIGNAL Referenz 1.5.12 FLATTEN-Operator Der FLATTEN-Operator verflacht die verschachtelte Tabelle mit den Ereignisat- tributen so, dass jedes Ereignisattribut zu einer Zeile der obersten Ebene wird. Fallattribute werden entsprechend wiederholt. Kombinieren Sie die MATCHES-Operatoren nicht mit dem Operator FLATTEN. Die MATCHES-Operatoren funktionieren nur für geschachtelte Tabellen und nicht für verflachte Tabellen. Verschachtelte Tabelle vor der Abflachung: Tabelle nach Abflachung: Mit der verflachten Tabelle können Aggregationen basierend auf Ereignisnamen oder anderen Ereignisattributen durchgeführt werden. Syntax: SELECT expression FROM FLATTEN (tablename) Parameter Beschreibung Die abgefragte Spalte oder der abgefragte Ausdruck, sowohl mit expression Attributen auf Fallebene als auch mit Attributen auf Ereignisebene. Die verschachtelte Tabelle, aus der Sie Datensätze tablename abrufen möchten. 9/2/2022
1 SIGNAL Referenz Beispiel 1: SELECT case_id,"Customer ID", "Order Status", "City", "event_ name", "end_time" FROM FLATTEN (THIS_PROCESS) Diese Abfrage legt eine verflachte Tabelle (siehe verflachte Tabelle oben) an, die weitere Aggregationen auf Ereignisattributebene ermöglicht. Beispiel 2: SELECT COUNT (DISTINCT case_id), "event_name" FROM FLATTEN (THIS_PROCESS) GROUP BY 2 Diese Abfrage gibt zurück, in wie vielen Fällen ein bestimmtes Ereignis vorkommt. 1.5.13 UNION ALL-Operator Mit dem UNION ALL-Operator können Sie die Ergebnismengen von mehreren SELECT-Anweisungen kombinieren. Die Anzahl der Tabellenspalten und Spal- tendatentypen muss für jede SELECT-Anweisung übereinstimmen, wenn der UNION ALL-Operator verwendet wird. Syntax: SELECT expression FROM tables [WHERE conditions] UNION ALL SELECT expression FROM tables [WHERE conditions] Parameter Beschreibung expression Die abgefragte Spalte oder der abgefragte Ausdruck. Die Tabellen, aus denen Sie Datensätze abrufen möchten. In der tables FROM-Klausel muss mindestens eine Tabelle aufgeführt sein. (Optional) Bedingungen, die erfüllt sein müssen, damit die conditions Datensätze ausgewählt werden. 9/2/2022
1 SIGNAL Referenz SELECT-Anweisungen vor und nach UNION ALL können nur die folgenden Klauseln haben: SELECT expressions FROM table [TABLESAMPLE] [WHERE] [GROUP BY] Alle anderen Klauseln, z. B. UNION ALL, ORDER BY, FILL, LIMIT und OFFSET, werden auf das Ergebnis von UNION ALL angewendet. Beispiel 1: SELECT case_id FROM THIS_PROCESS UNION ALL SELECT case_id FROM THIS_PROCESS Diese Abfrage gibt eine kombinierte Ergebnismenge der case_id-Spalten aus zwei Tabellen zurück. Beispiel 2: SELECT DATE_TRUNC('day', (SELECT FIRST(end_time))) AS ts, 1.0 AS is_first FROM THIS_PROCESS UNION ALL SELECT DATE_TRUNC('day', (SELECT LAST(end_time))) + DURATION '1day' AS ts, 0.0 as is_first FROM THIS_PROCESS Diese Abfrage gibt eine kombinierte Ergebnismenge von Terminen zurück, an denen ein Ereignis entweder offen oder geschlossen war. Es wird ein Zeitstempel (ts) verwendet, wobei 1 bedeutet, dass das Ereignis offen ist und 0 bedeutet, dass das Ereignis an den entsprechenden Terminen geschlossen ist. 1.6 SIGNAL Aliase Aliase werden verwendet, um der Ergebnismenge einen temporären Namen zu geben, damit die Spaltenüberschriften in Ihrer Ergebnismenge leichter lesbar sind. Bei der Verwendung einer Aggregatfunktion in einer Abfrage ist es üblich, 9/2/2022
1 SIGNAL Referenz einen Alias für eine Spalte zu verwenden. Ohne Alias wird ein Name basierend auf der Spalte und den Operationen im Ausdruck generiert. Weitere Inform- ationen finden Sie im Abschnitt SIGNAL Funktionen. Ein Alias ist nur im Rahmen der SIGNAL-Anweisung gültig. Syntax: expression AS alias_name Parameter Beschreibung Erforderlich expression Der Ausdruck, den Sie umbenennen möchten. Erforderlich Der temporäre Name, der zugeordnet werden soll. Setzen Sie den Namen in doppelte alias_name Erforderlich Anführungszeichen, wenn er ein Zeichen enthält, das weder ein Buchstabe noch eine Ziffer ist. Beispiel: In diesem Beispiel sind die folgenden Daten in einer Tabelle enthalten: case_id event_name end_time 1001 Receive customer order 2020-07-01T09:00:00 1002 Receive customer order 2020-07-04T13:00:00 1003 Receive customer order 2020-07-05T11:00:00 Geben Sie die folgende SIGNAL-Anweisung ein: SELECT COUNT(case_id) AS "No. of cases" FROM THIS_PROCESS Diese Abfrage gibt die folgende Ergebnismenge zurück: No. of cases 3 9/2/2022
1 SIGNAL Referenz 1.7 SIGNAL-Ausdrücke In diesem Abschnitt wird erläutert, welche Ausdrücke Sie in SIGNAL-Abfragen verwenden können. Folgende Ausdrücke stehen zur Verfügung: o CASE WHEN-Ausdruck 1.7.1 CASE WHEN-Ausdruck Der CASE WHEN-Ausdruck wertet eine Liste von Bedingungen aus und gibt einen Wert zurück, wenn die erste Bedingung erfüllt ist. Sobald eine Bedingung TRUE ist, wird der Lesevorgang gestoppt und das Ergebnis zurückgegeben. Wenn keine Bedingungen TRUE sind, wird der Wert in der ELSE-Klausel zurück- gegeben. Wenn die ELSE-Klausel nicht vorhanden ist, wird ein NULL-Wert zurückgegeben. Jede CASE-Anweisung muss mit der END-Anweisung enden. Die ELSE- Anweisung ist optional und bietet eine Möglichkeit, Werte zu erfassen, die nicht in den WHEN/THEN-Anweisungen angegeben sind. Die WHEN-Anweisung wird wie folgt ausgewertet: o Wenn eine Übereinstimmung gefunden wird, wird das entsprechende Ergeb- nis in der THEN-Anweisung zurückgegeben, und die Auswertung wird gestoppt. Weitere WHEN-Anweisungen werden nicht ausgewertet. o Wenn keine Übereinstimmung gefunden wird und eine ELSE-Anweisung im Ausdruck vorhanden ist, wird das Ergebnis in der ELSE-Anweisung zurück- gegeben. o Wenn keine Übereinstimmung gefunden wird und keine ELSE-Anweisung vorhanden ist, wird ein NULL-Wert zurückgegeben. Syntax: CASE WHEN condition 1 THEN result 1 [WHEN condition 2 THEN result 2] [ELSE result 3] END 9/2/2022
1 SIGNAL Referenz Parameter Beschreibung Die erste Bedingung, die Spaltenwerte und/oder Ausdrücke ver- Condition 1 gleicht und ein boolesches Ergebnis (TRUE oder FALSE) zurückgibt. Das erste Ergebnis, das zurückgegeben wird, wenn Bedingung 1 Result 1 TRUE ergibt. Die zweite Bedingung, die Spaltenwerte und/oder Ausdrücke ver- Condition 2 gleicht und ein boolesches Ergebnis (TRUE oder FALSE) zurückgibt. Das zweite Ergebnis wird zurückgegeben, wenn Bedingung 1 FALSE Result 2 und Bedingung 2 TRUE ergibt. Das dritte Ergebnis, das verwendet wird, wenn in den vorherigen Result 3 Bedingungen keine Übereinstimmung gefunden wird. Der CASE WHEN-Ausdruck kann in folgenden Klauseln verwendet werden: o SELECT o WHERE Die folgenden Vergleichsoperatoren und Schlüsselwörter können in der WHEN- Klausel verwendet werden: 9/2/2022
1 SIGNAL Referenz Oper- Beispiel ator/Schlüsselwörter WHEN "Order Amount" < '1000' THEN < 'Approved' WHEN "Order Amount" > '1000' THEN > 'Approved' WHEN "Order Amount" = 'Approved' WHEN "Order Amount" = '1000' THEN = 'Approved' WHEN "Order Amount" '1000' THEN 'Rejected' IN WHEN "Country" IN ('Germany', 'France') THEN 'Europe' WHEN "Country" NOT IN ('Germany', 'France') THEN 'Rest of NOT IN the World' Beispiel 1: Im folgenden Beispiel werden Länder basierend auf Regionen ausgewählt. Wenn sich ein Land in einer bestimmten Region befindet (Bedingung ist TRUE), wird es der Region hinzugefügt (Ergebnis). Wenn ein Land keine der Bedingungen erfüllt, wird es dem ELSE-Ergebnis "Rest of World" hinzugefügt. SELECT DISTINCT "Country", CASE WHEN "Country" = 'USA' THEN 'North America' WHEN "Country" = 'Germany' THEN 'EU' WHEN "Country" = 'France' THEN 'EU' WHEN "Country" = 'South Africa' THEN 'Africa' ELSE 'Rest of World' END AS "Region" FROM THIS_PROCESS Ergebnis: 9/2/2022
1 SIGNAL Referenz Die Abfrage gibt zurück, welche Länder sich in welchen Regionen in einer SIGNAL-Tabelle befinden. Beispiel 2: Das folgende Beispiel vergleicht die Mindest- und Höchstwerte von Kun- denzufriedenheitsbewertungen (CSAT) auf Ereignisebene in einem CASE WHEN-Ausdruck. SELECT "Country", CASE WHEN (SELECT(MAX("CSAT"))) = (SELECT(MIN("CSAT"))) THEN 'None' WHEN (SELECT(MAX("CSAT"))) - (SELECT(MIN("CSAT")))
1 SIGNAL Referenz 1.8.1 Aggregatfunktionen In diesem Abschnitt wird erläutert, welche Aggregatfunktionen Sie in SIGNAL- Abfragen verwenden können. AVG() Die Funktion AVG() gibt den Durchschnitt eines Ausdrucks in einer SELECT- Anweisung zurück. NULL-Werte werden ignoriert. Syntax: SELECT AVG(aggregate_expression) FROM table Parameter Beschreibung aggregate_ Die Spalte oder der Ausdruck, für die oder für den ein Mittelwert expression berechnet wird. table Die Tabelle, aus der Sie Datensätze abrufen möchten. Beispiel: SELECT AVG("Order Amount") FROM THIS_PROCESS Diese Abfrage gibt den durchschnittlichen Bestellbetrag aller Fälle zurück. SUM() Die Funktion SUM() gibt die Summe eines Ausdrucks in einer SELECT- Anweisung zurück. NULL-Werte werden ignoriert. Syntax: SELECT SUM(aggregate_expression) FROM table Parameter Beschreibung aggregate_ Die Spalte oder der Ausdruck, die oder der summiert wird. expression table Die Tabelle, aus der Sie Datensätze abrufen möchten. 9/2/2022
1 SIGNAL Referenz Beispiel: SELECT SUM("ORDER AMOUNT") FROM THIS_PROCESS WHERE("City"='Boston') Diese Abfrage gibt den Gesamtbestellbetrag in Boston zurück. COUNT() Die Funktion COUNT() gibt die Anzahl der Zeilen zurück. NULL-Werte werden nicht gezählt. Syntax: SELECT COUNT(count_expression) Parameter Beschreibung count_expres- Die Spalte oder der Ausdruck, die oder der gezählt wird. sion Beispiel: SELECT COUNT(case_id) FROM THIS_PROCESS Diese Abfrage gibt die Anzahl der Fälle zurück. COUNT (DISTINCT) Die Funktion COUNT DISTINCT() gibt die Anzahl der eindeutigen Werte des aus- gewerteten Ausdrucks zurück. Wenn NULL-Werte vorhanden sind, werden sie ausgeschlossen. Da Attribute auf Ereignisebene Listen sind, zählt diese Funktion die Anzahl der eindeutigen Listen. Beispiel: COUNT (DISTINCT event_name) zählt die Anzahl der eindeutigen Ereignissequenzen pro Fall. Diese Ereign- issequenzen stellen die Prozessvarianten dar. Syntax: SELECT COUNT(DISTINCT count_expression) FROM table 9/2/2022
1 SIGNAL Referenz Parameter Beschreibung count_expres- Die Spalte, das Ereignisattribut oder der Ausdruck, die oder sion der gezählt wird. table Die Tabelle, für die Sie die Datensätze zählen möchten. Beispiel 1 (Fallebene): SELECT COUNT(DISTINCT city) FROM THIS_PROCESS Diese Abfrage gibt die Anzahl der eindeutigen Städte zurück. Beispiel 2 (Ereignisebene): SELECT COUNT(DISTINCT event_name) FROM THIS_PROCESS Diese Abfrage gibt die Anzahl der Prozessvarianten zurück. MIN() Die Funktion MIN() gibt den kleinsten Wert zurück. Syntax: MIN(expression) Parameter Beschreibung expression Die Spalte oder der Ausdruck, die oder der gezählt wird. Beispiel: SELECT MIN(discount) FROM THIS_PROCESS Diese Abfrage gibt den niedrigsten Rabatt zurück. MAX() Die Funktion MAX() gibt den höchsten Wert zurück. Syntax: 9/2/2022
1 SIGNAL Referenz MAX(expression) Parameter Beschreibung expression Die Spalte oder der Ausdruck, die oder der gezählt wird. Beispiel: SELECT MAX(discount) FROM THIS_PROCESS Diese Abfrage gibt den höchsten Rabatt zurück. FIRST() Die Funktion FIRST() gibt das erste Element eines Arrays zurück. Syntax: SELECT FIRST(first_expression) FROM table Parameter Beschreibung Die Spalte oder der Ausdruck, deren oder dessen erstes Element first_expression Sie erhalten möchten. table Die Tabelle, aus der Sie die Daten abrufen möchten. Beispiel: SELECT SELECT FIRST(event_name) FROM THIS_PROCESS Diese Abfrage gibt den Namen des ersten Ereignisses in diesem Prozess zurück. LAST() Die Funktion LAST() gibt das erste Element eines Arrays zurück. Syntax: SELECT LAST(last_expression) FROM table 9/2/2022
1 SIGNAL Referenz Parameter Beschreibung Die Spalte oder der Ausdruck, deren oder dessen letztes Element last_expression Sie erhalten möchten. table Die Tabelle, aus der Sie die Daten abrufen möchten. Beispiel: SELECT SELECT LAST(event_name) FROM THIS_PROCESS Diese Abfrage gibt den Namen des letzten Ereignisses in diesem Prozess zurück. BOOL_OR() Die Funktion BOOL_OR gibt einen Wert zurück, wenn eine der Bedingungen wahr ist. Syntax für einfache Bedingung: SELECT BOOL_OR(condition) Parameter Beschreibung condition Die zu prüfenden Werte. Beispiel mit einfacher Bedingung: SELECT case_id, SELECT BOOL_OR(event_name=„event1“) AS „at least one event is event1“ FROM THIS_PROCESS Diese Abfrage gibt alle Fälle zurück, für die mindestens ein Ereignis „event1“ entspricht. 9/2/2022
1 SIGNAL Referenz BOOL_AND() Die Funktion BOOL_AND gibt einen Wert zurück, wenn alle Bedingungen wahr sind. Syntax für einfache Bedingung: SELECT BOOL_AND(condition) Parameter Beschreibung condition Die zu prüfenden Werte. Beispiel mit einfacher Bedingung: SELECT case_id, SELECT BOOL_AND(event_name=„event1“) AS „all events are event1“ FROM THIS_PROCESS Diese Abfrage gibt alle Fälle zurück, für die alle Ereignisse „event1“ entsprechen. OCCURRENCE() Die Funktion OCCURRENCE zählt die Anzahl der Vorkommen von Ereignissen in einer Sequenz, d. h. sie identifiziert Nachbearbeitungen. Diese Funktion wird immer als verschachtelte Unterabfrage verwendet. Syntax: OCCURRENCE(event_name)AS alias_name Parameter Beschreibung Der Ausdruck, dessen Vorkommen in einer Sequenz (Fall) event_name gezählt werden soll. Der temporäre Name, der zugeordnet werden soll. Setzen Sie den Namen in doppelte Anführungszeichen, wenn alias_name er ein Zeichen enthält, das weder ein Buchstabe noch eine Zif- fer ist. 9/2/2022
1 SIGNAL Referenz Beispiel: SELECT case_id AS "Case","event_name" AS "Events", (SELECT COUNT ("event_name")AS "No. Events"), (SELECT MAX (event_occurrence) FROM(SELECT OCCURRENCE("event_name") AS event_occurrence)as sub)as "Max. Event Occurrence" FROM THIS_PROCESS Diese Abfrage gibt die Gesamtzahl der Ereignisse je Fall zurück und berechnet eine kumulierte Anzahl pro Ereignis. Der Maximalwert dieser Berechnung wird als maximale Anzahl der Vorkommen des Ereignisses zurückgegeben, im Beis- piel „2“. Eine Vorkommen von „2“ zeigt eine Nachbearbeitung an (im Beispiel: Ship Goods Standard). 1.8.2 Arithmetische Funktionen Verwenden Sie die arithmetischen Funktionen, um statistische Berechnungen durchzuführen. SQRT Die SQRT-Funktion gibt die Quadratwurzel eines numerischen Ausdrucks zurück. Syntax: 9/2/2022
1 SIGNAL Referenz SQRT(expression) Parameter Beschreibung Die Spalte oder das Argument, für die bzw. das Sie die Quad- expression ratwurzel berechnen möchten. Beispiel 1: SELECT SQRT(9) FROM THIS_PROCESS Diese Abfrage berechnet die Quadratwurzel des gegebenen Arguments. Für Aus- druck = 9 ist das Ergebnis 3. Beispiel 2: SELECT SQRT("Order Amount in EUR") FROM THIS_PROCESS Diese Abfrage berechnet die Quadratwurzel aus den Bestellbeträgen. POW Die POW-Funktion gibt die Basis in Exponentenpotenz zurück. Syntax: POW(expression) Parameter Beschreibung Wertepaar (Basis: numerisch, Exponent: numerisch), z. B. (3,2). Für expression dieses Beispiel ist die Potenz 9. Beispiel (POW): SELECT POW(9,2), POW(9,0.5), POW(9,0), POW(9,1) FROM THIS_PROCESS Ergebnis: Die Tabelle zeigt die Ergebnisse (zweite Zeile) der vier Berechnungen (Spalten) an: 9/2/2022
1 SIGNAL Referenz LOG Die LOG-Funktion gibt den Exponenten der Gleichung x = b ^ (y) -> log (b,x) = y eines numerischen Ausdrucks zurück. Syntax: LOG(expression) Parameter Beschreibung Numerisches Wertepaar, z. B. (2, 8). In diesem Beispiel ist der Wert expression 3, da 2 ^ 3 = 8 Beispiel: SELECT LOG(10,1000), LOG(3,27), LOG (2,8) FROM THIS_PROCESS Ergebnis: Die Tabelle zeigt die Ergebnisse (zweite Zeile) der drei Berechnungen (Spalten) an: 9/2/2022
1 SIGNAL Referenz SIGN Die SIGN-Funktion gibt das Vorzeichen einer realen Zahl eines numerischen Aus- drucks zurück. Die Funktion ist wie folgt definiert: Für eine reale Zahl x o -1, wenn x < 0 o 0, wenn x = 0 o 1, wenn x > 0 Syntax: SIGN(expression) Parameter Beschreibung Die Spalte oder das Argument, aus der bzw. dem Sie das Vorzeichen expression extrahieren möchten. Beispiel: SELECT SIGN(10) AS Positive, (0) AS „Zero“, (-8)AS Negative FROM THIS_PROCESS Ergebnis: Die Tabelle zeigt die Vorzeichen (zweite Zeile) der drei numerischen Ausdrücke (Spalten) an: 9/2/2022
1 SIGNAL Referenz PERCENTILE_CONT Die Funktion PERCENTILE_CONT gibt das berechnete kontinuierliche Perzentil zurück, d. h. einen Wert, der dem in der Reihenfolge angegebenen Anteil ents- pricht. Die Berechnung hängt von der Wertposition ab. Der berechnete Wert trennt das untere vom oberen Perzentil. Wenn die Wertposition ein Bruchteil ist, wird der Wert zwischen den beiden benachbarten Werten interpoliert. Diese Funktion unterstützt die folgenden Datentypen: o Zahlen o Zeitstempel o Dauern Syntax: PERCENTILE_CONT(p)WITHIN GROUP(ORDER BY(expression)) Parameter Beschreibung p Perzentilrang, z. B. 0,50. Die Spalte, aus der Sie den Wert ermitteln möchten, der das untere expression vom oberen Perzentil für den angegebenen Perzentilrang trennt. Beispiel: Spalte A: Zeile Wert 1 65 2 72 3 81 4 95 5 112 6 128 9/2/2022
1 SIGNAL Referenz SELECT PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY A) FROM THIS_PROCESS Diese Abfrage ermittelt in einem ersten Schritt die Wertposition = 1,5. Da es sich um einen Bruchteil handelt, ist der Ergebniswert der Durchschnitt von Position 1 und 2 = 68,5. Werte unter 68,5 liegen im unteren Perzentil, Werte über 68,5 im oberen Perzentil. Für p = 0,75 ergibt sich: Wertposition = 4,5. Der Ergebniswert ist der Durchschnitt von Position 4 und 5, also 103,5. PERCENTILE_DISC Die Funktion PERCENTILE_DISC gibt das berechnete diskrete Perzentil zurück, d. h. einen Wert, der dem in der Reihenfolge angegebenen Anteil entspricht. Die Berechnung hängt von der Wertposition ab. Der berechnete Wert trennt das untere vom oberen Perzentil. Wenn der Wert ein Bruchteil ist, wird der höhere Wert verwendet. Diese Funktion unterstützt alle Datentypen außer Strings. Syntax: PERCENTILE_DISC(p)WITHIN GROUP(ORDER BY(expression)) Parameter Beschreibung p Perzentilrang, z. B. 0,50. Die Spalte, aus der Sie den Wert ermitteln möchten, der das untere expression vom oberen Perzentil für den angegebenen Perzentilrang trennt. Beispiel: Spalte A: 9/2/2022
1 SIGNAL Referenz Zeile Wert 1 65 2 72 3 81 4 95 5 112 6 128 SELECT PERCENTILE_DISC(0.25) WITHIN GROUP (ORDER BY A) FROM THIS_PROCESS Diese Abfrage ermittelt in einem ersten Schritt die Wertposition = 1,5. Da es sich um einen Bruchteil handelt, ist der Ergebniswert der Wert der höheren Position, d. h. 72. MEDIAN Die MEDIAN-Funktion ist eine Verknüpfung für die PERCENTILE_CONT-Funk- tion mit einem festen Perzentil von 0,5, d. h. der mittleren Zahl. Diese Funktion unterstützt die folgenden Datentypen: o Zahlen o Zeitstempel o Dauern Syntax: MEDIAN(expression) Parameter Beschreibung Die Spalte, aus der Sie den Wert ermitteln möchten, der die untere expression von der oberen Hälfte trennt. 9/2/2022
1 SIGNAL Referenz Beispiel: Spalte A: Zeile Wert 1 65 2 72 3 81 4 95 5 112 6 128 SELECT MEDIAN(A) FROM THIS_PROCESS Diese Abfrage ermittelt in einem ersten Schritt die Werteposition = 3. Da die sortierte Liste eine gerade Anzahl von Positionen hat, berechnet diese Abfrage das arithmetische Mittel, d. h. (81 + 95)/2 = 88. STDDEV Die STDDEV-Funktion gibt die Standardabweichung für numerische Eingabew- erte zurück. Die Standardabweichung beschreibt die durchschnittliche Abweichung aller Messwerte vom Mittelwert und gibt die Spanne an. Syntax: STDDEV(expression) Parameter Beschreibung Der numerische Datentyp (einschließlich beliebiger Formeln), dessen expression Standardabweichung Sie ermitteln möchten. Beispiel: 9/2/2022
1 SIGNAL Referenz SELECT STDEV(„Order Amount in EUR“) FROM THIS_PROCESS Diese Abfrage gibt einen Wert für die Verteilung der Bestellbeträge um den Mit- telwert für den Bestellbetrag zurück. 1.8.3 Datumsfunktionen In diesem Abschnitt wird erläutert, welche Datumsfunktionen Sie in SIGNAL- Abfragen verwenden können. Verwenden Sie Datumsfunktionen, um Vorgänge mit Datums- und Zeitwerten auszuführen. Der Zeitstempel wird immer im Format TT/MM/JJJJ angezeigt. 1.8.3.1 DATE_TRUNC() Mit DATE_TRUNC können Sie die angezeigte Präzisionsstufe von Zeitstempeln kürzen. „Kürzen“ bedeutet in diesem Zusammenhang, dass alle Präzisionsstufen unterhalb des Datumsteils des Zeitstempels, auf den gekürzt wird, als „01“ angezeigt werden. Wenn Sie beispielsweise den Zeitstempel auf die Präzi- sionsstufe „Jahr“ kürzen, werden alle Monate und Tage auf „01“ gesetzt. Syntax: SELECT DATE_TRUNC(date_part, column) 9/2/2022
1 SIGNAL Referenz Parameter Beschreibung Die Präzisionsstufe für den zurückgegebenen Zeitstempel in einfachen Anführungszeichen. Verfügbare Werte: o year o quarter o month date_part o week (Verwendung von Wochennummern gemäß ISO 8601) o day o hour o minute o second o millisecond Der Name der Spalte, die den Zeitstempel enthält, den Sie column abrufen möchten. Beispiel: SELECT DATE_TRUNC('day',(SELECT FIRST(END_TIME))) AS "Truncated (day)", DATE_TRUNC('month',(SELECT FIRST(END_TIME))) AS "Truncated (month)", DATE_TRUNC('year',(SELECT FIRST(END_TIME))) AS "Truncated (year)" FROM THIS_PROCESS Diese Abfrage gibt die gegebenen Zeitstempel mit gekürzten Datumsteilen zurück: o DATE_TRUNC('day') gibt die Zeitstempel unverändert zurück, da Präzi- sionsstufen unterhalb von „day“ nicht angezeigt werden. 9/2/2022
1 SIGNAL Referenz o DATE_TRUNC('month') gibt die Zeitstempel mit der Änderung zurück, dass alle Präzisionsstufen unter dem Monat auf „01“ gesetzt sind, d. h. 01/MM/JJJJ. o DATE_TRUNC('year') gibt die Zeitstempel mit der Änderung zurück, dass alle Präzisionsstufen unter dem Jahr auf „01“ gesetzt sind, d. h. 01/01/JJJJ. 1.8.3.2 DATE_PART() Mit DATE_PART extrahieren Sie einen Datumsteil aus einem bestimmten Zeit- stempel. Sie können beispielsweise den Monat und die Woche eines Zeit- stempels in separaten Spalten anzeigen, oder Sie können Datumsinformationen anzeigen, die standardmäßig nicht angezeigt werden, z. B. die Stunde. Syntax: SELECT DATE_PART(date_part, column) 9/2/2022
1 SIGNAL Referenz Parameter Beschreibung Die Präzisionsstufe für den zurückgegebenen Zeitstempel in einfachen Anführungszeichen. Verfügbare Werte: o year o quarter o month o week (Verwendung von Wochennummern gemäß ISO date_part 8601) o day o day of the week (gibt 0 bis 6 zurück, beginnend mit Son- ntag = 0) o hour o minute o second o millisecond Der Name der Spalte, die den Zeitstempel enthält, den Sie column abrufen möchten. Beispiel: SELECT "case_id", (SELECT FIRST("end_time")) AS "Timestamp", DATE_PART('day',(SELECT FIRST("end_time"))) AS "Day", DATE_PART('day_of_week',(SELECT FIRST("end_time"))) AS "Day of week", DATE_PART('week',(SELECT FIRST("end_time"))) AS "Week", DATE_PART('month',(SELECT FIRST("end_time"))) AS "Month", DATE_PART('year',(SELECT FIRST("end_time"))) AS "Year", DATE_PART('hour',(SELECT FIRST("end_time"))) AS "Hour", DATE_PART('minute',(SELECT FIRST("end_time"))) AS "Minute", DATE_PART('second',(SELECT FIRST("end_time"))) AS "Second", DATE_PART('millisecond',(SELECT FIRST("end_time"))) AS 9/2/2022
1 SIGNAL Referenz "Millisecond" FROM THIS_PROCESS Diese Abfrage extrahiert alle Datumsteile des Zeitstempels der Fälle und zeigt sie in separaten Spalten an. Wenn die zugrunde liegenden Daten nicht die abge- fragte Genauigkeit aufweisen, wird für den Wert „0“ angezeigt, wie in diesem Beispiel für die Millisekunden. 1.8.4 Fensterfunktionen In diesem Abschnitt werden die Fensterfunktionen erläutert, die Sie in Ihren SIGNAL-Abfragen verwenden können. Fensterfunktionen sind aggregationsähnliche Funktionen, die Sie für eine Auswahl der Zeilen ausführen können, die von einer Abfrage ausgewählt werden. Sie können Fensterfunktionen verwenden, um Berechnungen für eine Reihe von Tabellenzeilen durchzuführen, die sich auf die aktuelle Zeile in einer Tabelle bez- iehen. Bei Fensterfunktionen bleibt jede Zeile von der Abfrageausgabe getrennt. Fensterfunktionen haben Zugriff auf alle Zeilen, die Teil der Gruppe der aktuellen Zeile sind, die durch die PARTITION BY-Liste der Fensterfunktion bestimmt wird. Im Folgenden finden Sie die allgemeine Form einer Fensterfunktion: {aggregation function} OVER ([PARTITION BY {partition expressions}] [ORDER BY {order expres- sions}] [[ROWS | RANGE] BETWEEN {window frame}]) o Die Aggregatfunktion {aggregation function} ist die Funktion, die die Werte mehrerer Zeilen gruppiert, um einen einzelnen Gruppenergebniswert zu erstellen. o Die ORDER BY-Klausel sortiert die in der PARTITION BY-Klausel festgelegten Daten in aufsteigender oder absteigender Reihenfolge. o Die PARTITION BY-Klausel ist eine Unterklausel der OVER-Klausel und gruppiert eine Datenmenge in Partitionen. o ROWS|RANGE-Modi definieren den Umfang des Fensterrahmens {window frame}. o Der Fensterrahmen {window frame} ist die Menge der Zeilen, die sich auf die aktuelle Zeile beziehen, in der die Fensterfunktion zur Berechnung der Werte des definierten Fensters verwendet wird. Sie können den Fen- sterrahmen mit den Modi ROW und RANGE definieren. 9/2/2022
Sie können auch lesen