filter

Penggunaan

view: view_name {
  filter: filter_name { ... }
}
Hierarki
filter
Nilai Default
Tidak ada

Menerima
ID Looker untuk memberi nama filter

Aturan Khusus
Nama filter tidak boleh sama dengan filter, dimension, atau measure lainnya dalam view yang sama

Definisi

Parameter filter mendeklarasikan kolom khusus filter dan nama untuk filter tersebut. Pengguna dapat menambahkan kolom hanya filter sebagai filter saat menjelajahi, tetapi tidak dapat menambahkannya ke kumpulan hasil. Kolom hanya filter ini menjadi berguna menggunakan filter ber-template, yang merupakan topik LookML lanjutan. Anda juga dapat melihat contoh Menggunakan filter untuk memfilter menurut kolom tersembunyi.

Nama filter harus:

  • Unik dalam tampilan tertentu
  • Terdiri dari karakter a hingga z (tanpa huruf kapital), 0 hingga 9, atau _
  • Diawali dengan huruf

Ada banyak jenis kolom filter, seperti yang dibahas lebih lanjut di halaman dokumentasi Jenis dimensi, filter, dan parameter.

Subparameter untuk filter

Lihat halaman referensi Parameter kolom untuk mengetahui daftar subparameter yang tersedia untuk kolom LookML.

Contoh

Berikut beberapa contoh penggunaan parameter filter.

Membuat filter yang ditentukan pengguna

Buat filter yang memungkinkan pengguna menentukan order_region:

filter: order_region {
  type: string
}

Menentukan tabel turunan dinamis dengan filter ber-template

Seperti yang ditunjukkan di halaman dokumentasi Filter template dan parameter Liquid, tentukan tabel turunan untuk menghitung pembelanjaan seumur hidup pelanggan di wilayah yang ditentukan oleh pengguna. Contoh ini menggunakan filter yang dibuat dalam contoh sebelumnya sebagai bagian dari filter yang dibuat menggunakan template. Input filter digunakan dalam klausa WHERE dengan variabel Liquid:

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
  }
}

Menggunakan parameter sql dengan filter

Anda juga dapat menggunakan parameter sql dengan filter, yang berlaku untuk klausa SQL WHERE setiap kali filter memiliki nilai. Hal ini memungkinkan klausa WHERE dinamis, berdasarkan input filter pengguna.

Contoh berikut membuat filter yang hanya mengizinkan nama pengguna yang ada dalam set data:

filter: user_enabled {
  type: string
  suggest_dimension: user_name
  sql: EXISTS (SELECT user_id FROM users WHERE {% condition %} user_name {% endcondition %} and state = 'enabled') ;;
}

Dalam contoh sebelumnya, jika daftar lengkap nama pengguna dalam set data adalah "Zach", "Erin", dan "Brett", filter akan menghasilkan klausa WHERE berikut:

WHERE EXISTS (SELECT user_id FROM users WHERE user_name in ('Zach', 'Erin', 'Brett') and state = 'enabled')

Lihat bagian Menggunakan filter untuk memfilter menurut kolom tersembunyi di halaman ini untuk mengetahui contoh cara menggunakan parameter sql dengan filter.

Menggunakan filter untuk menentukan tabel turunan dinamis dan filter yang ditentukan pengguna

Dengan menggunakan contoh sebelumnya yang menentukan tabel turunan dengan nilai wilayah dinamis, Anda dapat menggunakan parameter sql dengan filter ber-template untuk membuat klausa WHERE secara dinamis yang berlaku untuk tabel turunan dan kueri utama yang dihasilkan Looker:

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 ;;
  }

Pada contoh sebelumnya, pengguna memberikan input ke filter order_region, yang pada gilirannya memberikan nilai ke dimensi region. Dimensi region kemudian memberikan nilai klausa WHERE dalam SQL tabel turunan dan, karena parameter sql dalam definisi filter, nilai untuk klausa WHERE dalam kueri yang dihasilkan Looker.

Menggunakan filter untuk memfilter menurut kolom tersembunyi

Anda dapat menggunakan filter untuk membuat dimensi yang dapat digunakan pengguna untuk memfilter, sekaligus mencegah pengguna memilih dimensi dalam kueri.

  1. Pertama, sembunyikan dimensi yang dimaksud menggunakan hidden: yes. Artinya, dimensi tidak akan tersedia untuk dipilih pengguna dari pemilih kolom Eksplorasi.

      dimension: field_to_hide {
        type: string
        hidden: yes
        sql: ${TABLE}.field_to_hide ;;
      }
    
  2. Sekarang, buat kolom filter untuk ditautkan ke dimensi field_to_hide.

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

Seperti yang dibahas dalam contoh Menggunakan parameter sql dengan filter, parameter sql dari kolom filter menerapkan SQL secara langsung ke klausa WHERE kueri. Dalam hal ini, sql mengambil kondisi filter yang ditentukan dalam filter filter_on_field_to_hide dan menerapkannya ke dimensi ${field_to_hide}.

Dengan cara ini, pengguna dapat memfilter kueri menurut field_to_hide dengan filter filter_on_field_to_hide, sementara dimensi field_to_hide tetap disembunyikan.