SAP Signavio Process Intelligence SIGNAL-Referenz - Alle Versionen

Die Seite wird erstellt Veronika Prinz
 
WEITER LESEN
SAP Signavio Process Intelligence SIGNAL-Referenz - Alle Versionen
SAP Signavio Process
Intelligence SIGNAL-Referenz

                               Alle Versionen
SAP Signavio Process Intelligence SIGNAL-Referenz - Alle Versionen
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