Jika memiliki izin untuk membuat kolom kustom, Anda dapat membuat grup kustom ad hoc untuk dimensi tanpa menggunakan fungsi logis dalam ekspresi Looker atau mengembangkan logikaCASE WHEN
di parametersql
atau kolomtype: case
.
Anda juga dapat membuat bin kustom ad hoc untuk dimensi jenis numerik tanpa perlu menggunakan fungsi logis dalam ekspresi Looker atau perlu mengembangkan type: tier
kolom LookML jika Anda memiliki izin untuk membuat kolom kustom.
Pengelompokan 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
pada kolom LookML
Menggunakan tier
untuk pengelompokan
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 menjelajah. Keempat 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-nya dan menggunakan format Tx[x,x]
dengan Tx
menunjukkan nomor tingkat dan [x,x]
menunjukkan rentang. Gambar berikut adalah tabel data Eksplorasi dengan Jumlah Pengguna yang dikelompokkan berdasarkan Usia Pengguna:
Gambar berikutnya menampilkan 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 lebih kecil 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 datanya tidak menyertakan nilai usia untuk bucket tersebut:
Jika pengisian dimensi dinonaktifkan untuk Tingkat Usia, bucket lebih akurat dalam mencerminkan nilai usia yang tersedia dalam data, dimulai dengan bucket 10 sampai 19:
Anda dapat mengaktifkan atau menonaktifkan pengisian dimensi dengan mengarahkan kursor ke nama dimensi di Eksplorasi, mengklik ikon roda gigi tingkat kolom, dan memilih Hapus Nilai Tingkat Terisi untuk menonaktifkan, atau Isi Nilai Tingkat yang Tidak Ada untuk mengaktifkan.
Cari tahu lebih lanjut Looker tiers
di halaman dokumentasi Jenis dimensi, filter, dan parameter.
Menggunakan case
untuk pengelompokan
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 pencantuman bucket. Untuk dimensi order_amount_bucket
, urutan bucket adalah Kecil, Sedang, dan Besar:
Jika Anda ingin mengurutkan berdasarkan 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 (Anda harus menentukan setiap output dengan pernyataan WHEN
atau ELSE
), atau jika ingin mengimplementasikan pernyataan ELSE
yang lebih kompleks, sebaiknya gunakan SQL CASE WHEN
, yang dibahas di bagian berikutnya.
Baca selengkapnya tentang parameter case
di halaman dokumentasi Parameter kolom.
Menggunakan SQL CASE WHEN
untuk pengelompokan
Pernyataan CASE WHEN
SQL direkomendasikan untuk bucketing yang lebih kompleks, atau untuk implementasi pernyataan ELSE
yang lebih spesifik.
Misalnya, Anda mungkin ingin menggunakan metode bucketing 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 ;; }