Jika memiliki izin untuk membuat kolom kustom, Anda dapat membuat grup kustom ad hoc untuk dimensi tanpa menggunakan fungsi logika dalam ekspresi Looker atau mengembangkan logikaCASE WHEN
di parametersql
atau kolomtype: case
.
Anda juga dapat membuat kelompok kustom ad hoc untuk dimensi jenis numerik tanpa perlu menggunakan fungsi logika dalam ekspresi Looker atau perlu mengembangkan kolom LookML type: tier
jika Anda memiliki izin untuk membuat kolom kustom.
Bucketing dapat sangat berguna untuk membuat dimensi pengelompokan kustom di Looker.
Ada tiga cara untuk membuat bucket di Looker:
- Menggunakan jenis
dimension
tier
- Menggunakan parameter
case
- Menggunakan pernyataan
CASE WHEN
SQL dalam parameterSQL
kolom LookML
Menggunakan tier
untuk bucketing
Untuk membuat bucket bilangan bulat, kita cukup menentukan jenis dimension
sebagai tier
:
dimension: users_lifetime_orders_tier { type: tier tiers: [0,1,2,5,10] sql: ${users_lifetime_orders} ;; }
Anda dapat menggunakan parameter style
untuk menyesuaikan tampilan tingkat saat menjelajahi. Empat opsi untuk style
adalah sebagai berikut:
Contoh:
dimension: age_tier { type: tier tiers: [0,10,20,30,40,50,60,70,80] style: integer sql: ${age} ;; }
Parameter style
classic
adalah default dan menggunakan format Tx[x,x]
dengan Tx
yang menunjukkan nomor tingkat dan [x,x]
yang menunjukkan rentang. Gambar berikut adalah tabel data Jelajahi dengan Jumlah Pengguna yang dikelompokkan menurut Usia Pengguna:
Gambar berikutnya menunjukkan contoh opsi parameter style
lainnya:
-
interval
— Dengan format[x,x]
, yang menunjukkan nilai terendah dan nilai tertinggi tingkat -
integer
— Dengan formatx to x
, yang menunjukkan nilai terendah dan nilai tertinggi tingkat -
relational
— Dengan format>= x and <x
, yang menunjukkan bahwa nilai lebih besar dari atau sama dengan nilai tingkat terendah dan kurang dari nilai tingkat tertinggi
Hal-hal yang perlu dipertimbangkan
Menggunakan tier
bersama dengan pengisian dimensi dapat menghasilkan bucket tingkat yang tidak terduga.
Misalnya, dimensi type: tier
, Tingkat Usia, akan menampilkan bucket tingkat untuk Di bawah 0 dan 0 hingga 9 saat pengisian dimensi diaktifkan, meskipun data tidak menyertakan nilai usia untuk bucket tersebut:
Jika pengisian dimensi dinonaktifkan untuk Tingkat Usia, bucket akan mencerminkan nilai usia yang tersedia dalam data dengan lebih akurat, dimulai dengan bucket 10 hingga 19:
Anda dapat mengaktifkan atau menonaktifkan pengisian dimensi dengan mengarahkan kursor ke nama dimensi di Jelajah, mengklik ikon roda gigi tingkat kolom, dan memilih Hapus Nilai Tingkat yang Diisi untuk menonaktifkan, atau Isi Nilai Tingkat yang Tidak Ada untuk mengaktifkan.
Cari tahu lebih lanjut tiers
Looker di halaman dokumentasi Jenis dimensi, filter, dan parameter.
Menggunakan case
untuk bucketing
Anda dapat menggunakan parameter case
untuk membuat bucket bernama kustom dengan pengurutan kustom. Parameter case
direkomendasikan untuk kumpulan bucket tetap, karena dapat membantu mengontrol cara nilai ditampilkan, diurutkan, dan digunakan dalam filter dan visualisasi UI. Misalnya, dengan case
, pengguna hanya dapat memilih nilai bucket yang ditentukan dalam filter.
Untuk membuat bucket dengan case
, Anda dapat menentukan dimensi, seperti bucket untuk jumlah pesanan:
dimension: order_amount_bucket { case: { when: { sql: ${order_amount} <= 50;; label: "Small" } when: { sql: ${order_amount} > 50 AND ${order_amount} <= 150;; label: "Medium" } when: { sql: ${order_amount} > 150;; label: "Large" } else:"Unknown" } }
Parameter case
biasanya akan mengurutkan nilai sesuai urutan bucket yang tercantum. Untuk dimensi order_amount_bucket
, urutan bucket adalah Kecil, Sedang, dan Besar:
Jika Anda ingin mengurutkan secara alfanumerik, tambahkan parameter alpha_sort
ke dimensi, seperti berikut:
dimension: order_amount_bucket { alpha_sort: yes case: { when: { sql: ${order_amount} <= 50;; label: "Small" } when: { sql: ${order_amount} > 50 AND ${order_amount} <= 150;; label: "Medium" } when: { sql: ${order_amount} > 150;; label: "Large" } else:"Unknown" } }
Untuk dimensi yang menginginkan banyak nilai berbeda dalam output (hal ini mengharuskan Anda menentukan setiap output dengan pernyataan WHEN
atau ELSE
), atau jika Anda ingin menerapkan pernyataan ELSE
yang lebih kompleks, sebaiknya gunakan CASE WHEN
SQL, yang akan dibahas di bagian berikutnya.
Baca selengkapnya tentang parameter case
di halaman dokumentasi Parameter kolom.
Menggunakan CASE WHEN
SQL untuk bucketing
Pernyataan CASE WHEN
SQL direkomendasikan untuk pengelompokan yang lebih kompleks, atau untuk penerapan pernyataan ELSE
yang lebih terperinci.
Misalnya, Anda mungkin ingin menggunakan metode pengelompokan yang berbeda, bergantung pada tujuan pesanan. Pernyataan CASE WHEN
SQL dapat digunakan untuk membuat dimensi bucket gabungan, dengan pernyataan THEN
menampilkan dimensi, bukan string:
dimension: compound_buckets { sql: CASE WHEN ${orders.destination} = 'US' THEN ${us_buckets} WHEN ${orders.destination} = 'CA' THEN ${canada_buckets} ELSE ${intl_buckets} END ;; }