Filtervorlagen verwenden

Nutzung

view: view_name {
filter: filter_name { ... }
}
Hierarchie
filter
Standardwert
Keine

Akzeptiert
Eine Looker-Kennung zum Benennen des Filters

Sonderregeln
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 bis z (keine Großbuchstaben), 0 bis 9 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.

  1. 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 ;;
  }
  1. Erstellen Sie nun ein filter-Feld, um eine Verknüpfung zur Dimension field_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.