Nutzung
filter: filter_name { ... }
}
Hierarchie
filter |
Standardwert
KeineAkzeptiert
Eine Looker-Kennung zum Benennen des FiltersSonderregeln
Filternamen dürfen nicht mit anderen Filtern, dimension oder measure innerhalb derselben view geteilt werden
|
Definition
Der Parameter filter
gibt ein Nur-Filter-Feld und einen Namen für diesen Filter an. Nutzer können Felder, die nur Filter enthalten, bei der Suche als Filter hinzufügen. Sie können sie jedoch nicht ihrem Ergebnissatz hinzufügen. Diese Felder, die nur Filter enthalten, werden mithilfe von Vorlagenvorlagen, einem erweiterten LookML-Thema, nützlich gemacht. Weitere Informationen finden Sie unter Mit filter
nach einem ausgeblendeten Feld filtern.
Der Filtername muss folgende Voraussetzungen erfüllen:
- Innerhalb jeder Datenansicht eindeutig sein
- Bestehen aus den Zeichen
a
bisz
(keine Großbuchstaben),0
bis9
oder_
- Muss mit einem Buchstaben beginnen
Es gibt viele Arten von Filterfeldern, die auf der Dokumentationsseite Dimension, Filter und Parametertypen genauer erläutert werden.
Beispiele
Hier einige Beispiele für die Verwendung des Parameters filter
.
Benutzerdefinierten Filter erstellen
Erstellen Sie einen Filter, mit dem Nutzer order_region
angeben können:
filter: order_region {
type: string
}
Dynamische abgeleitete Tabelle mit einem Vorlagenfilter definieren
Wie auf der Seite Vorlagenfilter und Liquid-Parameter dargestellt, können Sie eine abgeleitete Tabelle definieren, um die Lifetime-Ausgaben für Kunden in einer vom Nutzer angegebenen Region zu berechnen. In diesem Beispiel wird das im vorherigen Beispiel erstellte filter
als Teil eines Vorlagenfilters verwendet. Die Eingabe filter
wird in der WHERE
-Klausel mit Liquid-Variablen verwendet:
view: customer_facts {
derived_table: {
sql:
SELECT
customer_id,
SUM(sale_price) AS lifetime_spend
FROM
order
WHERE
{% condition order_region %} order.region {% endcondition %}
GROUP BY 1
;;
}
filter: order_region {
type: string
}
}
Parameter sql
mit filter
verwenden
Sie können auch den Parameter sql
mit filter
verwenden. Er gilt für die SQL-Klausel WHERE
, wenn der Filter einen Wert hat. Dies ermöglicht eine dynamische WHERE
-Klausel, die auf der Nutzerfiltereingabe basiert.
Im folgenden Beispiel wird ein Filter erstellt, der nur Nutzernamen zulässt, die im Dataset vorhanden sind:
filter: user_enabled {
type: string
suggest_dimension: user_name
sql: EXISTS (SELECT user_id FROM users WHERE {% condition %} user_name {% endcondition %} and state = 'enabled') ;;
}
Wenn im obigen Beispiel die vollständige Liste der Nutzernamen im Dataset „Zach“, „Erin“ und „Brett“ lautet, führt der Filter zu der folgenden WHERE
-Klausel:
WHERE EXISTS (SELECT user_id FROM users WHERE user_name in ('Zach', 'Erin', 'Brett') and state = 'enabled')
Ein Beispiel für die Verwendung des Parameters sql
mit filter
finden Sie im Abschnitt Mit filter
nach einem ausgeblendeten Feld filtern.
Mit filter
eine dynamische abgeleitete Tabelle und einen benutzerdefinierten Filter definieren
Im vorherigen Beispiel, in dem eine abgeleitete Tabelle mit einem dynamischen Regionswert definiert wird, können Sie den Parameter sql
mit einem Vorlagenfilter verwenden, um eine WHERE
-Klausel dynamisch zu erstellen, die sowohl für die abgeleitete Tabelle als auch für die von Looker generierte Hauptabfrage gilt:
view: customer_facts {
derived_table: {
sql:
SELECT
customer_id,
SUM(sale_price) AS lifetime_spend
FROM
order
WHERE
{% condition order_region %} order.region {% endcondition %}
GROUP BY 1
;;
}
filter: order_region {
type: string
sql: {% condition order_region %} ${region} {% endcondition %} ;;
}
dimension: region {
type: string
sql: ${TABLE}.region ;;
}
Im Beispiel oben stellt der Nutzer Eingaben für den Filter order_region
bereit, der wiederum den Wert für die Dimension region
liefert. Die Dimension region
stellt dann den Wert der WHERE
-Klausel im abgeleiteten Tabellen-SQL und aufgrund des Parameters sql
in der filter
-Definition den Wert für die WHERE
-Klausel in einer von Looker generierten Abfrage bereit.
Mit filter
nach einem ausgeblendeten Feld filtern
Mit filter
können Sie eine Dimension erstellen, nach der Nutzer filtern können, und gleichzeitig verhindern, dass Nutzer sie in einer Abfrage auswählen.
- Blenden Sie zuerst die betreffende Dimension mit
hidden: yes
aus. Das bedeutet, dass die Dimension nicht von Nutzern im Feld „Erkunden“ ausgewählt werden kann.
dimension: field_to_hide {
type: string
hidden: yes
sql: ${TABLE}.field_to_hide ;;
}
- Erstellen Sie nun ein
filter
-Feld, um eine Verknüpfung zur Dimensionfield_to_hide
herzustellen.
filter: filter_on_field_to_hide {
type: string
sql: {% condition filter_on_field_to_hide %} ${field_to_hide} {% endcondition %} ;;
}
Wie im Beispiel Parameter sql
mit filter
verwenden beschrieben, wird der Parameter sql
des Felds filter
direkt auf die WHERE
-Klausel der Abfrage angewendet. In diesem Fall wendet sql
die im filter_on_field_to_hide
-Filter angegebene Filterbedingung auf die Dimension ${field_to_hide}
an.
So können Nutzer eine Abfrage mit dem Filter filter_on_field_to_hide
nach field_to_hide
filtern, während die Dimension field_to_hide
ausgeblendet bleibt.