Filter

Nutzung

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

Akzeptiert
Looker-ID zum Benennen des Filters

Besondere Regeln
Filternamen dürfen nicht mit anderen Filtern, dimension oder measure innerhalb derselben view geteilt werden.

Definition

Mit dem Parameter filter wird ein Nur-Filter-Feld und ein Name für diesen Filter deklariert. Ein Nutzer kann Nur-Filter-Felder als Filter hinzufügen, wenn er Daten analysiert, aber nicht zu seinem Ergebnissatz. Diese Nur-Filter-Felder werden durch Vorlagenfilter nutzbar gemacht. Das ist ein fortgeschrittenes LookML-Thema. Weitere Informationen finden Sie auch im Beispiel Mit filter nach einem ausgeblendeten Feld filtern.

Der Filtername muss:

  • muss innerhalb einer Ansicht eindeutig sein.
  • Besteht aus den Zeichen a bis z (keine Großbuchstaben), 0 bis 9 oder _
  • Muss mit einem Buchstaben beginnen

Es gibt viele Arten von Filterfeldern, wie auf der Dokumentationsseite Dimensionen, Filter und Parametertypen beschrieben.

Unterparameter für filter

Eine Liste der für LookML-Felder verfügbaren Unterparameter finden Sie auf der Referenzseite Feldparameter.

Beispiele

Hier sind einige Beispiele für die Verwendung des Parameters filter.

Benutzerdefinierten Filter erstellen

Erstellen Sie einen Filter, mit dem der Nutzer die order_region angeben kann:

filter: order_region {
  type: string
}

Eine dynamische abgeleitete Tabelle mit einer Filtervorlage definieren

Wie auf der Dokumentationsseite Filtervorlagen und Liquid-Parameter gezeigt, definieren Sie eine abgeleitete Tabelle, um die Gesamtausgaben für Kunden in einer vom Nutzer angegebenen Region zu berechnen. In diesem Beispiel wird die filter aus dem vorherigen Beispiel als Teil eines Filter mit Vorlage 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
  }
}

sql-Parameter mit filter verwenden

Sie können auch den Parameter sql mit filter verwenden. Dieser wird auf die SQL-WHERE-Klausel angewendet, wenn der Filter einen Wert hat. So kann eine dynamische WHERE-Klausel auf Grundlage der Nutzereingabe für den Filter erstellt werden.

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 die vollständige Liste der Nutzernamen im Dataset im vorherigen Beispiel „Zach“, „Erin“ und „Brett“ lautet, führt der Filter zur 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 auf dieser Seite im Abschnitt Mit filter nach einem ausgeblendeten Feld filtern.

filter verwenden, um eine dynamische abgeleitete Tabelle und einen benutzerdefinierten Filter zu definieren

Im vorherigen Beispiel wurde eine abgeleitete Tabelle mit einem dynamischen Regionswert definiert. Sie können den Parameter sql mit einem Vorlagenfilter verwenden, um dynamisch eine WHERE-Klausel 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 vorherigen Beispiel gibt der Nutzer eine Eingabe für den Filter order_region an, der wiederum den Wert für die Dimension region bereitstellt. Die Dimension region enthält dann den Wert der WHERE-Klausel im SQL-Code der abgeleiteten Tabelle. Aufgrund des Parameters sql in der Definition von filter wird auch der Wert für die WHERE-Klausel in einer von Looker generierten Abfrage angegeben.

filter verwenden, um nach einem ausgeblendeten Feld zu filtern

Mit filter können Sie eine Dimension erstellen, nach der Nutzer filtern können, ohne dass sie die Dimension in einer Abfrage auswählen können.

  1. Blenden Sie zuerst die entsprechende Dimension mit hidden: yes aus. Das bedeutet, dass die Dimension für Nutzer nicht in der Feldauswahl eines Explorers verfügbar ist.

      dimension: field_to_hide {
        type: string
        hidden: yes
        sql: ${TABLE}.field_to_hide ;;
      }
    
  2. Erstellen Sie nun ein filter-Feld, um es mit der Dimension field_to_hide zu verknüpfen.

    filter: filter_on_field_to_hide {
      type: string
      sql: {% condition filter_on_field_to_hide %} ${field_to_hide} {% endcondition %} ;;
    }
    

Wie im Beispiel für die Verwendung des Parameters sql mit filter beschrieben, wird mit dem Parameter sql des Felds filter SQL direkt auf die WHERE-Klausel der Abfrage angewendet. In diesem Fall wird die Filterbedingung, die im Filter filter_on_field_to_hide angegeben ist, auf die Dimension ${field_to_hide} angewendet.sql

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 weiterhin ausgeblendet bleibt.