Filter

Nutzung

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

Akzeptiert
Eine Looker-Kennung 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 bei der explorativen Datenanalyse hinzufügen, aber nicht zu seinem Ergebnissatz. Diese Nur-Filter-Felder werden durch Vorlagenfilter nutzbar gemacht. Das ist ein fortgeschrittenes LookML-Thema. Weitere Informationen finden Sie im Beispiel Mit filter nach einem ausgeblendeten Feld filtern.

Der Filtername muss:

  • muss innerhalb einer Ansicht eindeutig sein.
  • Darf nur die Zeichen a bis z (keine Großbuchstaben), 0 bis 9 oder _ enthalten.
  • 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 Unterparameter, die für LookML-Felder verfügbar sind, finden Sie auf der Referenzseite Feldparameter.

Beispiele

Hier finden Sie 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 den Parameter sql auch mit filter verwenden. Dies gilt für die SQL-WHERE-Klausel, wenn der Filter einen Wert hat. So ist eine dynamische WHERE-Klausel basierend auf der Eingabe des Nutzerfilters möglich.

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 von Explore 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 sql-Parameter mit filter verwenden beschrieben, wird mit dem sql-Parameter des Felds filter SQL direkt auf die WHERE-Klausel der Abfrage angewendet. sqlIn diesem Fall wird die Filterbedingung, die im filter_on_field_to_hide-Filter angegeben ist, auf die Dimension ${field_to_hide} angewendet.

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.