Diese Seite bezieht sich auf den Parameter
filters
, der Teil einer Kennung ist.
filters
kann auch als Teil einer nativen abgeleiteten Tabelle verwendet werden, wie auf der Dokumentationsseite zum Parameterexplore_source
beschrieben.
filters
kann auch als Teil eines Dashboards verwendet werden, wie auf der Dokumentationsseite zu den Dashboard-Parametern beschrieben.
filters
kann auch als Teil eines Dashboard-Elements verwendet werden. Ein repräsentatives Beispiel für seine Verwendung finden Sie auf der Dokumentationsseite für Spaltendiagrammelemente.
Nutzung
measure: field_name {
filter: [dimension_name: "filter expression", dimension_name: "filter expression", ... ]
}
}
Hierarchie
filters |
Mögliche Feldtypen
MessenAkzeptiert
Eine Reihe von Dimensionsnamen und entsprechenden Looker-Filterausdrücken |
Definition
filters
ist eine optionale Liste von Filterausdrücken, die auf eine Berechnungsberechnung angewendet werden. Es funktioniert nur mit den folgenden Messtypen, die eine Aggregation durchführen:
type: count
type: count_distinct
type: sum
type: average
Die Syntax für Filter lautet:
filters: [dimension_name_1: "Looker filter expression", dimension_name_2: "Looker filter expression", ...]
Weitere Informationen zum Schreiben gültiger Filterausdrücke finden Sie unter Filternotation von Looker. Platzieren Sie den gesamten Filterausdruck wie in den folgenden Beispielen in Anführungszeichen.
Sie können auch filters
mit Liquid-Parametern und Vorlagenfiltern verwenden, um dynamische gefilterte Messwerte mit einem Filterwert zu erstellen, der sich basierend auf der Nutzereingabe in einem Dashboard oder Look dynamisch ändern kann. Bei diesem Ansatz können Nutzer Filterwerte auswählen, die nur für einen bestimmten Messwert gelten, ohne die gesamte Abfrage in einer globalen WHERE
-Klausel zu filtern. Weitere Informationen finden Sie im Abschnitt Dynamische gefilterte Messwerte erstellen weiter unten auf dieser Seite.
Beispiele
Es gibt viele Möglichkeiten, filters
für Messwerte zu verwenden. Die folgenden Beispiele beschreiben einige Lösungen für häufige Anwendungsfälle:
- Nach mehreren Feldern filtern
- Nach einer
yesno
-Dimension filtern - Mehrere Filterwerte hinzufügen
- Numerische Filterbedingungen hinzufügen
- Syntax für erweiterte Filter verwenden
- Dynamische gefilterte Messwerte erstellen
Nach mehreren Feldern filtern
In diesem Beispiel werden die IDs gezählt, die in den letzten sieben Tagen erstellt wurden und nicht von Nutzern mit deaktivierten Konten stammen. Dieses Beispiel zeigt auch, wie Sie einem Feld mehrere Filter hinzufügen. Jeder Filterausdruck erfordert einen eigenen vollständigen filters
-Parameter:
measure: this_week_count {
type: count_distinct
sql: ${TABLE}.id ;;
filters: [created_date: "7 days", user.status: "-disabled"]
# Reference fields from other joined views with view_name.field_name syntax
# Minus sign means "not" in this case, but check notation docs for details
}
Nach einer Dimension „yesno
“ filtern
Ein weiteres Beispiel sind Daten, die eine Zeile pro Person enthalten, die entweder ein regulärer Mitarbeiter oder ein Auftragnehmer ist. Es gibt ein Feld namens is_contractor
vom Typ yesno
, das yes
enthält, wenn die Person ein Auftragnehmer ist. Bei dieser Maßnahme werden nur Zeilen für Auftragnehmer gezählt:
measure: contractor_count {
type: count
filters: [is_contractor: "yes"]
}
Mehrere Filterwerte hinzufügen
Im nächsten Beispiel enthält der Ausdruck filters
mehrere Werte. Mit dem Messwert werden alle Zeilen gezählt, die mit einem der vier Werte im Feld state
übereinstimmen:
measure: customers_by_state {
type: count
filters: [state: "California, Nevada, Washington, Oregon"]
}
Bedingungen für numerische Filter hinzufügen
In diesem Beispiel erhält der Filter einen numerischen Wert. Dadurch werden nur Bestellungen mit einer price
von mehr als 100 hinzugefügt:
measure: total_amt_large_orders {
type: sum
filters: [orders.price: ">100"]
sql: ${orders.price} ;;
}
Erweiterte Filtersyntax verwenden
In diesem Beispiel erhält der Filter einen Bereich numerischer Werte. Bei der Messung wird die Gesamtzahl der Bestellungen von Kunden in der Altersgruppe der 18- bis 25-Jährigen berücksichtigt:
measure: sales_18_to_25 {
type: sum
filters: [customers.age: ">=18 AND <=25"]
sql: ${orders.price} ;;
}
Dynamische gefilterte Messwerte erstellen
In diesem Beispiel kann ein Nutzer die Anzahl der Bestellungen anhand eines vom Nutzer ausgewählten Status nach einem Look- oder Dashboard-Filter filtern:
Erstellen Sie zuerst ein Nur-Filter-Feld, in dem der Nutzer einen Wert auswählen kann:
filter: status_filter {
type: string
suggest_dimension: status
}
Erstellen Sie als Nächstes eine ausgeblendete Dimension, die anhand von Vorlagenfiltern die Nutzerauswahl aus dem vorherigen Feld, das nur zum Filtern dient, erfasst. Diese Dimension gibt yes zurück, wenn ein Wert im Filterfeld ausgewählt wird:
dimension: status_satisfies_filter {
type: yesno
hidden: yes
sql: {% condition status_filter %} ${status} {% endcondition %} ;;
}
Erstellen Sie abschließend einen Messwert, mit dem nach der Dimension type: yesno
gefiltert wird:
measure: count_dynamic_status {
type: count
filters: [status_satisfies_filter: "yes"]
}
Wenn ein Nutzer keinen Wert für das Feld „Nur Filter“ auswählt, ist der Standardwert 1=1. Das hat keine Auswirkungen auf die Messwerte.
Häufige Herausforderungen
filters
nicht mit Maßen von type: number
verwenden
Viele Nutzer versuchen, filters
mit Maßen von type: number
zu verwenden, was nicht funktioniert:
# Will NOT work
measure: total_food_profit {
type: number
sql: ${total_revenue} - ${total_cost} ;;
filters: [segment: "food"]
}
measure: total_revenue {
type: sum
sql: ${revenue} ;;
}
measure: total_cost {
type: sum
sql: ${cost} ;;
}
Wenden Sie stattdessen einen filters
-Parameter auf jede der einzelnen Messungen an, die den Messwert type: number
ausmachen:
# Will work
measure: total_food_profit {
type: number
sql: ${total_food_revenue} - ${total_food_cost} ;;
}
measure: total_food_revenue {
type: sum
sql: ${revenue} ;;
filters: [segment: "food"]
}
measure: total_food_cost {
type: sum
sql: ${cost} ;;
filters: [segment: "food"]
}