Looker-Ausdrücke
Mit Looker-Ausdrücken (auch Lexp genannt) werden Berechnungen für folgende Elemente durchgeführt:
Ein Looker-Ausdruck besteht aus einer Kombination der folgenden Elemente:
NULL::Der Wert
NULLgibt an, dass keine Daten vorhanden sind. Er kann nützlich sein, wenn Sie prüfen möchten, ob etwas leer ist oder nicht existiert.Eine Konstante:Eine Konstante ist ein unveränderlicher Wert, den Sie angeben. Eine Zahl wie
7oder ein String wieCompletedsind Konstanten.Ein Looker-Feld:Ein Verweis auf ein Looker-Feld, einschließlich Dimensionen, Messwerte und Tabellenkalkulationen.
Ein Looker-Operator: Es gibt verschiedene Arten von Operatoren (die auf der Dokumentationsseite Looker-Funktionen und -Operatoren aufgeführt sind):
- Mathematische Operatoren (z. B.
+,-,*und/) - Vergleichsoperatoren (z. B.
=,>und<=) - Logische Operatoren (z. B.
AND,ORundNOT)
- Mathematische Operatoren (z. B.
Eine Looker-Funktion:Diese ähneln Excel-Funktionen. Mit Funktionen können Sie Ihre Daten auf komplexe Weise transformieren oder darauf verweisen. Alle verfügbaren Funktionen sind auf der Dokumentationsseite Looker-Funktionen und -Operatoren aufgeführt.
Looker-Ausdrücke erstellen
Tabellenkalkulationen, benutzerdefinierte Felder und benutzerdefinierte Filter verwenden den Looker-Ausdruckseditor. Während Sie Ihren Ausdruck eingeben, werden Ihnen in Looker Funktionen, Operatoren und Feldnamen vorgeschlagen, die Sie möglicherweise verwenden möchten.
Alle Vorschläge ansehen
Greifen Sie in einem Explore auf den Looker-Ausdruckseditor zu, indem Sie eine Tabellenkalkulation, ein benutzerdefiniertes Feld oder einen benutzerdefinierten Filter erstellen.
Geben Sie ein Leerzeichen ein, um eine Liste aller Felder, Funktionen und Operatoren aufzurufen, aus denen Sie auswählen können. Wenn ein Feld derzeit im Explore ausgewählt ist, wird in Looker links neben dem Feld ein schwarzer Punkt angezeigt und das Feld wird oben in der Liste aufgeführt.
Beginnen Sie mit der Eingabe im Looker-Ausdruckseditor, um die Liste auf die Elemente zu beschränken, die Sie interessieren.
Im Editor für benutzerdefinierte Felder werden Explore-Felder angezeigt, die derzeit verwendet werden, sofern sie mit der Funktion des benutzerdefinierten Felds kompatibel sind.
Feld hinzufügen
Wenn Sie ein Looker-Feld in Ihren Ausdruck einfügen möchten, beginnen Sie mit der Eingabe des Feldnamens. Während der Eingabe wird die Suche im Editor auf eine Liste von Feldern und Funktionen beschränkt, die das enthalten, was Sie eingegeben haben. Sie können den Namen des Felds so eingeben, wie er auf der Explore-Seite angezeigt wird, oder den LookML-Namen verwenden, wenn Sie ihn kennen.
Wenn Sie ein Feld aus der Liste auswählen, wird es in Looker mit dem LookML-Namen im Format ${view_name.field_name} zu Ihrem Ausdruck hinzugefügt. So wird sichergestellt, dass alle Felder in Ihrem Ausdruck eindeutige Namen haben.
Summen hinzufügen
Wenn Sie einen Ausdruck erstellen, der auf einem Explore basiert, in dem Sie Summen angezeigt haben, können Sie auch Spalten- und Zeilensummen in den Ausdruck einbeziehen. Spaltensummen werden im Editor mit dem Wort Summe vor der LookML-Iteration des Feldnamens angezeigt. Für ein Feld mit dem Namen Anzahl gibt Looker der Spaltensumme für dieses Feld beispielsweise den Namen Count - Total.
Der LookML-Name für Summen hat das Format ${view_name.field_name:total}, wobei :total am Ende des Feldnamens hinzugefügt wird.
Bei Zeilensummen wird im Editor vor dem Feldnamen Zeilensummen angezeigt. Im LookML-Namen des Felds wird :row_total am Ende des Feldnamens hinzugefügt, z. B. ${view_name.field_name:row_total}.
Operatoren hinzufügen
Sie können bei Bedarf logische Operatoren wie AND, OR und NOT zu Ihrem Ausdruck hinzufügen. Normalerweise werden AND-Operatoren vor OR-Operatoren ausgewertet. Sie können dieses Verhalten jedoch mit Klammern überschreiben. Sie können auch Vergleichsoperatoren (z. B. >, = und <=) und mathematische Operatoren (z. B. + und *) verwenden.
Wenn Sie den Mauszeiger auf einen Operator bewegen, werden im Informationsbereich Hinweise zur korrekten Verwendung angezeigt.
Funktionen hinzufügen
Wenn Sie eine Looker-Funktion in Ihren Ausdruck einfügen möchten, beginnen Sie mit der Eingabe des Funktionsnamens. Während der Eingabe wird die Suche im Editor auf eine Liste von Feldern und Funktionen beschränkt, die das enthalten, was Sie eingegeben haben.
Funktionen können aus Argumenten (oder Variablen) bestehen, die einen bestimmten Typ erfordern, z. B. ein Feld, eine Zahl oder „Ja/Nein“. Wenn Sie den Mauszeiger auf eine Funktion bewegen, können Sie im Informationsbereich neben Ihrem Ausdruck die Hinweise prüfen, um zu erfahren, welche Argumente Sie angeben müssen und welchen Typ sie haben müssen.
Eine vollständige Liste der von Looker angebotenen Funktionen finden Sie auf der Dokumentationsseite Looker-Funktionen und -Operatoren.
Fehlerhinweise und Informationsbereich verwenden
In Looker wird neben dem Looker-Ausdruckseditor ein Informationsbereich angezeigt. Dieser Bereich enthält Dokumentation und Vorschläge, insbesondere wenn ein Fehler in Ihrem Ausdruck vorliegt.
Der Informationsbereich neben dem Ausdruckseditor enthält die folgenden Informationen:
Fehlerhervorhebung:In Looker werden alle Teile des Ausdrucks, die noch nicht korrekt sind, rot unterstrichen.
Vorschläge und Fehlerdetails:Looker macht Vorschläge, was Sie als Nächstes in Ihren Ausdruck einfügen können. Wenn ein Fehler vorliegt, wird erklärt, warum er auftritt. Wenn mehrere Fehler vorhanden sind, wird der Fehler angezeigt, der sich an der Position des Cursors befindet.
Dokumentation:In Looker wird Dokumentation zur Funktion oder zum Operator angezeigt, mit dem Sie arbeiten, basierend auf der Cursorposition. Wenn Sie beispielsweise das erste Argument einer
if()-Funktion eingeben, wird in Looker die Information angezeigt, dass das erste Argument als „true“ oder „false“ ausgewertet werden sollte. Sie können auf den Funktionsnamen klicken, um zur Dokumentation für diese Funktion zu gelangen.
Kommentare einfügen
Sie können Kommentare in Looker-Ausdrücke einfügen, indem Sie die Kommentarzeile im Ausdruckseditor mit # beginnen.
Felder verwenden
Manchmal möchten Sie den Wert eines Felds (einer Dimension, eines Messwerts oder einer Tabellenkalkulation) in einem Ausdruck verwenden. Sie können den Wert des Felds beispielsweise zu etwas anderem hinzufügen, prüfen, ob er einen bestimmten Wert hat, ihn in eine Funktion einfügen oder viele andere Möglichkeiten nutzen.
Wie bereits zuvor auf dieser Seite beschrieben, können Sie den Namen des Felds in den Ausdruckseditor eingeben. Looker hilft Ihnen dann, die richtige Art zu finden, auf das Feld zu verweisen. Wenn Sie ein Feld zu einem Ausdruck hinzufügen, wird in Looker der LookML-Bezeichner des Felds verwendet, der so aussieht: ${view_name.field_name}. Geben Sie den Feldnamen so ein, wie er in der Feldauswahl angezeigt wird. Im Ausdruckseditor werden dann der Name in der Feldauswahl und der LookML-Bezeichner zusammen angezeigt.
Es gibt verschiedene Möglichkeiten, einen Wert abzurufen:
Wert aus derselben Zeile abrufen:Die einfachste Möglichkeit, ein Feld zu verwenden, besteht darin, direkt darauf zu verweisen. Ihr Ausdruck könnte beispielsweise
${product.category}verwenden. Damit sagen Sie: „Für jede Zeile rufe die Produktkategorie aus dieser Zeile ab.“Wert aus einer anderen Zeile abrufen:Sie können den Wert eines Felds auch aus einer anderen Zeile abrufen. Beispiel: Sie möchten die Logik „Für jede Zeile rufe die Produktkategorie aus der vorherigen Zeile ab.“ Dazu können Sie eine Offset-Funktion verwenden (siehe diese Liste der Positionsfunktionen). Die Offset-Funktion könnte so aussehen:
offset(${product.category}, -1).Wert aus einer Pivot-Spalte abrufen:Sie können auch Werte aus Pivot-Spalten abrufen. Beispiel: Sie möchten die Logik „Für jede Zeile rufe den Gesamtumsatz aus der ersten Pivot-Spalte ab.“ Um mit Pivot-Spalten zu arbeiten, müssen Sie Pivot-Funktionen verwenden (siehe diese Liste der Pivot-Funktionen). Die Pivot-Funktion könnte so aussehen:
pivot_index(${order.total_sales}, 1).Summe aus einer Zeile oder Spalte abrufen:Wenn Sie Ihrem Explore Summen hinzugefügt haben, können Sie Summenwerte aus der Spalte oder Zeile abrufen, indem Sie dem Feldnamen
:total(für Spaltensummen) oder:row_total(für Zeilensummen) hinzufügen und das Format${field_name:total}verwenden. Wenn Sie beispielsweise einen Prozentsatz der Gesamtzahl der Bestellungen wünschen, können Sie eine Tabellenkalkulation wie diese erstellen:${orders.count} / ${orders.count:total}.
Operatoren verwenden
Looker-Ausdrücke können logische, Vergleichs- und mathematische Operatoren enthalten, um verschiedene Bedingungen zu erstellen:
- Logische Operatoren (z. B.
AND,ORundNOT) - Vergleichsoperatoren (z. B.
>und<) - Mathematische Operatoren (z. B.
+und-)
Sofern Sie mit Klammern nichts anderes angeben, wird die AND-Logik vor der OR-Logik berücksichtigt. Der folgende Ausdruck ohne zusätzliche Klammern:
if (
${order_items.days_to_process}>=4 OR
${order_items.shipping_time}>5 AND
${order_facts.is_first_purchase},
"review", "okay")
wird so ausgewertet:
if (
${order_items.days_to_process}>=4 OR
(${order_items.shipping_time}>5 AND ${order_facts.is_first_purchase}),
"review", "okay")
In Looker sollten Sie yes und no anstelle von true und false verwenden. Diese logischen Konstanten sind nicht dasselbe wie die in Anführungszeichen gesetzten Wörter "yes" und "no". Weitere Informationen finden Sie in der Beschreibung der logischen Konstanten.
Funktionen verwenden
Looker-Ausdrücke enthalten oft eine oder mehrere Funktionen, mit denen Sie bestimmte Daten abrufen oder bestimmte Berechnungen durchführen können. Sie ähneln Excel-Funktionen.
Funktionen haben die Form eines Namens, gefolgt von zwei Klammern, z. B. my_function(). Möglicherweise müssen Sie in diesen Klammern durch Kommas getrennte Informationen angeben. Diese Informationen werden als „Argumente“ bezeichnet und sehen so aus: my_function(argument_1, argument_2).
Die Funktion now nimmt beispielsweise keine Argumente entgegen und gibt das aktuelle Datum und die aktuelle Uhrzeit zurück. Sie wird so verwendet: now().
Die round Funktion nimmt ein Argument entgegen, nämlich eine Zahl. Sie wird so verwendet: round(3.2). Das Ergebnis ist 3.
Es gibt zwei Möglichkeiten, herauszufinden, welche Argumente Sie angeben müssen (falls überhaupt):
- Der Informationsbereich neben dem Ausdruckseditor enthält eine Dokumentation zur Funktion, die Sie schreiben. Sie können auf den Namen der Funktion klicken, um zur Dokumentation zu gelangen.
- Sie können auch direkt zur Dokumentationsseite Looker-Funktionen und -Operatoren navigieren und die Funktion suchen, die Sie verwenden möchten.
Betrachten Sie die contains Funktion, deren Dokumentation so aussieht:
| Funktion | Syntax | Zweck |
|---|---|---|
| contains | contains(string, search_string) |
Gibt Yes zurück, wenn string search_string enthält, andernfalls No |
Es sind zwei Argumente erforderlich. Sie haben die Namen string und search_string. Das bedeutet aber nicht, dass Sie genau die Wörter „string“ und „search_string“ in die Funktion eingeben müssen. Das sind nur Namen für die Argumente, die Sie durch etwas ersetzen. Aus dem Zweck geht hervor, dass string ein Feld oder ein anderer Wert sein sollte, in dem gesucht werden soll, während das search_string das ist, wonach gesucht werden soll. Ein Beispiel:
contains(${customer.feedback_text}, "great")
Wenn das Wort „great“ im Kundenfeedback vorkommt, gibt diese Funktion das Ergebnis Yes zurück. Andernfalls wird No zurückgegeben.
Sie können Funktionen in andere Funktionen einfügen, um komplexe Logik zu verarbeiten. Solange das Ergebnis der inneren Funktion für die Argumente der äußeren Funktion geeignet ist, funktioniert sie. Beispiel:
contains(
if(
is_null(${customer.feedback_text}),
${customer.comment_text},
${customer.feedback_text}
),
"great")
Die is_null Funktion ist in einer if-Funktion verschachtelt, die sich wiederum in einer contains-Funktion befindet. So funktioniert sie:
- Die Funktion
is_null()prüft auf Kundenfeedback-Text. - Als Nächstes verwendet die Funktion
if()dieses Ergebnis und gibt den Kundenfeedback-Text zurück, falls vorhanden, oder andernfalls den Text des Kundenkommentars. - Schließlich verwendet die Funktion
contains()den von der Funktionif()zurückgegebenen Text und sucht darin nach dem Wort „great“.
Logisch bedeutet dieser Ausdruck: „Wenn Kundenfeedback vorhanden ist, suche darin. Andernfalls suche stattdessen in Kundenkommentaren. Suche in beiden Fällen nach dem Wort ‚great‘.“