Konzept: Prism-Ausdruckssprache
Prism Analytics enthält eine eigene Ausdruckssprache, die aus Funktionen und Operatoren besteht. Sie verwenden die Prism-Ausdruckssprache, um einen
Ausdruck
zu erstellen, mit dem Sie neue Werte erstellen oder vorhandene Werte filtern können.Ein Ausdruck berechnet oder generiert einen Wert, indem er Felder, Konstantwerte, Operatoren und Funktionen kombiniert. Ein Ausdruck gibt einen Wert einer bestimmten Feldart aus, z. B. numerische oder Textwerte. Einfache Ausdrücke können ein einzelner Konstantwert, die Werte eines bestimmten Felds oder nur eine Funktion sein. Sie können Operatoren verwenden, um zwei oder mehr einfache Ausdrücke zu einem komplexen Ausdruck zu verbinden.
Sie können Ausdrücke in Datasets verwenden:
- Berechnete FelderVerwenden Sie Ausdrücke, um berechnete Felder für die Quelldaten zu definieren. Ein Ausdruck für ein berechnetes Feld generiert seine Werte basierend auf einer Berechnung oder Bedingung und gibt einen Wert für jede Eingabezeile zurück. Ausdrücke für berechnete Felder können Werte aus anderen Feldern, Konstanten, mathematischen Operatoren, Vergleichsoperatoren oder integrierten Zeilenfunktionen enthalten.
- Filtern Sie Phasen.Verwenden Sie einen Ausdruck in einer Filterphase, um den Bereich der Quelldaten eines Datasets zu beschränken.
Mit dem Ausdrucks-Builder können Sie Ausdrücke für berechnete Felder in einem Dataset erstellen. Es werden die verfügbaren Felder im Dataset sowie die Liste der Prism-Funktionen angezeigt. Ihre Ausdrücke werden auf korrekte Syntax, Eingabefeldarten usw. validiert.
Funktionseingaben und -ausgaben
Funktionen verwenden einen oder mehrere Eingabewerte und geben einen Ausgabewert zurück. Eingabewerte können ein Literalwert oder der Name eines Felds sein, das einen Wert enthält. In beiden Fällen erwartet die Funktion, dass der Eingabewert einem bestimmten Feldtyp entspricht, z. B. Text oder Integer. Beispiel: Die Funktion CONCAT() kombiniert Text-Eingaben und gibt einen neuen Text aus.
Dieses Beispiel veranschaulicht, wie mit der Funktion CONCAT() die Werte in den Feldern
month
, day
und year
, die durch den exakten Schrägstrich getrennt sind, verkettet werden:CONCAT([month],"/",[day],"/",[year])
Der Rückgabewert einer Funktion kann mit ihrer Eingabeart identisch sein oder eine ganz neue Feldart sein. Beispiel: Die Funktion TO_DATE() verwendet einen Text als Eingabe, gibt aber einen Date-Wert aus. Wenn eine Funktion einen Text erwartet, aber ein anderer Feldtyp als Eingabe übergeben wird, gibt die Funktion einen Fehler zurück.
In der Regel werden Funktionen danach klassifiziert, welche Feldart sie verwenden oder welchem Zweck sie dienen. Beispiel: CONCAT() ist eine Textfunktion und TO_DATE() ist eine Funktion zur Konvertierung von Feldarten.
Verschachtelungsfunktionen
Funktionen können andere Funktionen als Argumente annehmen. Beispiel: Sie können die Funktion CONCAT als Argument für die Funktion TO_DATE() verwenden. Das Endergebnis ist ein Datumswert im Format 31.10.2014.
TO_DATE(CONCAT([month],"/",[day],"/",[year]),"MM/dd/yyyy")
Die verschachtelte Funktion muss den richtigen Feldtyp zurückgeben. Da TO_DATE() eine Texteingabe erwartet und CONCAT() einen Text zurückgibt, ist die Verschachtelung erfolgreich.
Bezieht sich auf Felder im aktuellen Dataset
Workday empfiehlt, alle Feldnamen in eckige Klammern zu setzen ().
[]
). Beispiel:TO_INT([sales])
TO_INT([Sale Amount])
TO_INT([2013_data])
TO_INT([count])
Wenn ein Feldname ein ] (schließende eckige Klammer) enthält, müssen Sie die schließende eckige Klammer durch Verdoppelung mit ] maskieren. Angenommen, Sie haben folgenden Feldnamen:
[Total Sales]
Sie schließen den gesamten Feldnamen in eckige Klammern ein und maskieren die schließende Klammer, die Teil des tatsächlichen Feldnamens ist:
[[Total Sales]]]
Literaltextwerte
Um einen Literal- oder Ist-Textwert anzugeben, schließen Sie den Wert in doppelte Anführungszeichen ein (
"
). Beispiel: Dieser Ausdruck konvertiert die Werte eines Felds für Geschlecht
in die Literalwerte für männlich
, weiblich
oder unbekannt
:
CASE WHEN [gender]="M"THEN"male"WHEN [gender]="F"THEN"female"ELSE"unknown"END
Um ein Literal-Anführungszeichen innerhalb eines Literalwerts selbst zu maskieren, verdoppeln Sie das Literal-Anführungszeichen. Beispiel:
CASE WHEN [height]="60""" THEN "5 feet" WHEN [height]="72""" THEN "6 feet" ELSE "other" END
Die Funktion REGEX() ist ein Sonderfall. In der Funktion REGEX() werden Textausdrücke ebenfalls in Anführungszeichen gesetzt. Wenn ein Textausdruck wörtliche Anführungszeichen enthält, verdoppeln Sie die Anzahl an Anführungszeichen. Beispiel:
REGEX([height], "\d\'(\d)+""")
Literale Datumswerte
Um auf einen Datumswert in einem Ausdruck für die Filterphase zu verweisen, müssen Sie dieses Format (oder eine verkürzte Version davon) ohne schließende Anführungszeichen oder andere Satzzeichen verwenden:
yyyy-MM-ddTHH:mm:ss:SSSZ
Beispiel:
[Order Date] BETWEEN 2016-06-01T00:00:00.000Z AND 2016-07-31T00:00:00.000Z
Wenn der Filterausdruck eine verkürzte Version des vollständigen Formats ist, weist Prism allen Werten, die nicht enthalten sind, den Wert 0 (0) zu. Beispiel: Dieser Ausdruck:
[Order Date] >= 2017-01-01
Entspricht:
[Order Date] >= 2017-01-01T00:00:00.000Z
Um in einem berechneten Feldausdruck auf einen Datumsliteralwert zu verweisen, müssen Sie das Format der Datums- und Zeitkomponenten mithilfe von TO_DATE angeben. Dafür werden ein Textliteralargument und eine Formatzeichenfolge verwendet. Beispiel:
CASE WHEN [Order Date]=TO_DATE("2013-01-01 00:00:59 PST","yyyy-MM-dd HH:mm:ss z") THEN "free shipping" ELSE "standard shipping" DONE
Numerische Literalwerte
Für numerische Literalwerte können Sie einfach die Zahl selbst angeben, ohne spezielle Escape-Zeichen oder Formatierungen. Beispiel:
CASE WHEN [is married]=1THEN "married" WHEN [is married]=0THEN "not_married" ELSE NULL END