Untuk membandingkan metrik yang difilter menurut beberapa jangka waktu di Look atau dasbor yang sama, Anda dapat menggunakan ukuran yang difilter. Dengan ukuran yang difilter, Anda dapat menerapkan filter hardcode langsung ke ukuran, bukan menerapkan filter ke seluruh kueri.
Jika memiliki 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 Jelajahi, Tampilan, atau dasbor. Anda juga dapat menerapkan pendekatan ini lebih lanjut untuk membuat perbandingan jangka waktu menjadi dinamis — atau ukuran yang berubah dengan jangka waktu yang ditentukan oleh pengguna di Jelajahan, Tampilan, atau dasbor — dengan menggunakan filter template dalam ukuran yang difilter.
Ringkasan pola
Pada tingkat tinggi, pendekatan ini melibatkan tiga komponen:
-
Tentukan filter template
type: dateuntuk setiap jangka waktu yang akan muncul sebagai kolom khusus filter di Eksplorasi, Tampilan, atau dasbor Anda. -
Buat dimensi jenis
yesnountuk dikaitkan dengan filter dengan template sehingga saat pengguna memilih nilai untuk kolom khusus filter, dimensiyesnoakan menampilkan "ya" untuk catatan yang memenuhi kondisi filter. -
Buat ukuran yang difilter yang mereferensikan dimensi
yesnodengan kondisivalue = "yes". Hal ini memastikan bahwa ukuran hanya menggabungkan data 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 Jelajah berikut:
Pengguna dapat mengubah nilai di filter Rentang Waktu A dan Rentang Waktu B dan 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. Rentang Waktu A memengaruhi nilai untuk Jumlah Pesanan A, dan Rentang 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 — yang difilter menurut dua jangka waktu dinamis — Timeframe A dan Timeframe B — berdasarkan created_raw 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
Pengukuran yang difilter tidak menerapkan kondisi filter ke keseluruhan hasil kueri. Jika ingin membatasi keseluruhan hasil kueri dalam jangka waktu yang ditentukan, Anda dapat:
-
Buat dimensi
yesnoberikut - Filter nilai dimensi berdasarkan "ya" di Jelajah, 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 memindai lebih banyak data daripada yang diperlukan untuk kueri — dan dapat membantu performa dan biaya kueri.