Untuk membandingkan metrik yang difilter menurut beberapa jangka waktu dalam Tampilan atau dasbor yang sama, Anda dapat menggunakan ukuran yang difilter. Tindakan yang difilter memungkinkan Anda menerapkan filter hardcode secara langsung ke ukuran, alih-alih menerapkan filter ke seluruh kueri.
Jika memiliki jumlah jangka waktu terbatas yang ingin Anda bandingkan, Anda dapat menentukan beberapa ukuran dengan filter jangka waktu hardcode (misalnya, "tahun ini" dan "tahun lalu") dan menampilkannya di Eksplorasi, Tampilan, atau dasbor. Anda juga dapat mengambil pendekatan ini selangkah lebih maju untuk membuat perbandingan jangka waktu menjadi dinamis — atau pengukuran yang berubah dengan jangka waktu yang ditentukan oleh pengguna di Penjelajahan, Tampilan, atau dasbor — dengan menggunakan filter template dalam tindakan yang difilter.
Ringkasan pola
Pada tingkat tinggi, pendekatan ini melibatkan tiga komponen:
-
Tentukan filter template
type: date
untuk setiap jangka waktu yang akan muncul sebagai kolom khusus filter di Jelajahi, Tampilan, atau dasbor Anda. -
Buat dimensi jenis
yesno
untuk dikaitkan dengan filter template sehingga saat pengguna memilih nilai untuk kolom khusus filter, dimensiyesno
akan menampilkan "ya" untuk data yang memenuhi kondisi filter. -
Buat ukuran yang difilter yang mereferensikan dimensi
yesno
dengan kondisivalue = "yes"
. Hal ini memastikan bahwa pengukuran hanya menggabungkan catatan yang memenuhi kondisi jangka waktu yang ditentukan dalam filter yang ditentukan pada langkah 1.
Logika ini memungkinkan pengguna membuat analisis dan visualisasi yang membandingkan nilai dari jangka waktu yang berbeda, seperti Eksplorasi berikut:
Pengguna dapat mengubah nilai di filter Jangka Waktu A dan Jangka Waktu B serta hanya memengaruhi nilai untuk Jumlah Pesanan A dan Jumlah Pesanan B. Jumlah Pesanan A dan Jumlah Pesanan B adalah ukuran dengan filter yang mereferensikan kondisi jangka waktu dalam filter jangka waktu. Jangka waktu A memengaruhi nilai untuk Jumlah Pesanan A, dan Jangka Waktu B memengaruhi nilai untuk Jumlah Pesanan B.
Bagian berikut menyediakan LookML untuk contoh ini.
LookML
LookML berikut mengasumsikan bahwa Anda memiliki grup dimensi dengan jangka waktu raw
bernama created_raw
:
dimension_group: created { type: time timeframes: [ raw, time, date, ] sql: ${TABLE}.created_at ;; }
LookML untuk membandingkan ukuran jumlah — Orders Count A dan Orders Count B — difilter menurut dua jangka waktu dinamis — Timeframe A dan Timeframe B — berdasarkan created_raw
akan terlihat seperti ini:
## filter determining time range for all "A" measures filter: timeframe_a { type: date_time } ## flag for "A" measures to only include appropriate time range dimension: group_a_yesno { hidden: yes type: yesno sql: {% condition timeframe_a %} ${created_raw} {% endcondition %} ;; } ## filtered measure A measure: count_a { type: count filters: [group_a_yesno: "yes"] } ## filter determining time range for all "B" measures filter: timeframe_b { type: date_time } ## flag for "B" measures to only include appropriate time range dimension: group_b_yesno { hidden: yes type: yesno sql: {% condition timeframe_b %} ${created_raw} {% endcondition %} ;; } measure: count_b { type: count filters: [group_b_yesno: "yes"] }
Anda dapat menggunakan logika ini untuk membuat perbandingan jangka waktu sebanyak yang Anda butuhkan.
Memfilter seluruh kueri dengan jangka waktu dinamis
Tindakan yang difilter tidak menerapkan kondisi filter ke keseluruhan hasil kueri. Jika Anda ingin membatasi hasil kueri keseluruhan dalam jangka waktu yang ditentukan, Anda dapat:
-
Buat dimensi
yesno
berikut - Filter nilai dimensi menurut "ya" di Eksplorasi, Tampilan, atau dasbor:
dimension: is_in_time_a_or_b { group_label: "Time Comparison Filters" type: yesno sql: {% condition timeframe_a %} ${created_raw} {% endcondition %} OR {% condition timeframe_b %} ${created_raw} {% endcondition %} ;; }
Hal ini mencegah database agar tidak memindai lebih banyak data daripada yang diperlukan untuk kueri — dan dapat membantu meningkatkan performa dan biaya kueri.