Cara menyediakan dimensi ukuran di Looker

Sebagai aturan umum di SQL — dan, secara luas, Looker — Anda tidak dapat mengelompokkan kueri berdasarkan hasil fungsi agregat (diwakili di Looker sebagai ukuran). Anda hanya dapat mengelompokkan berdasarkan kolom yang tidak digabungkan (diwakili di Looker sebagai dimensi). Jika mencoba menggabungkan ukuran di Looker, Anda akan melihat error berikut:

Measures with Looker aggregations (sum, average, min, max, list types) may not reference other measures.

Bagaimana jika Anda memerlukan cara untuk mengubah ukuran (COUNT, SUM, AVG, MAX, dll.) menjadi dimensi, sehingga Anda dapat mengelompokkan berdasarkan ukuran tersebut untuk menggabungkannya (seperti SUM dari COUNT atau AVG dari SUM), memfilter berdasarkan ukuran tersebut (dalam klausa WHERE, bukan klausa HAVING), atau membuat pivot berdasarkan ukuran tersebut di Jelajah?

Menggunakan tabel turunan untuk membuat dimensi pengukuran

Secara internal di Looker, solusi ini disebut menyediakan dimensi ukuran. Hal ini karena Anda mendefinisikan ulang pengukuran sebagai dimensi. Hal ini dilakukan dengan membuat tabel turunan yang menyertakan ukuran yang ingin Anda dimensikan dalam definisi SQL-nya.

Prosesnya

Contoh berikut didasarkan pada contoh set data e-commerce. Tujuan untuk contoh ini adalah membuat ukuran type: average yang didasarkan pada ukuran Total Pendapatan type: sum yang ada.

Langkah-langkah berikut menguraikan cara membuat tabel turunan berbasis SQL. Anda dapat memilih untuk membuat tabel turunan berbasis LookML, yang juga dikenal sebagai tabel turunan native (NDT), sebagai alternatif untuk SQL.
  1. Mulai dengan menyiapkan Kueri jelajah. Pilih kolom yang sesuai, termasuk ukuran yang ingin Anda dimensikan.

    Dalam contoh kasus penggunaan, tabel Data Jelajah menampilkan Total Pendapatan yang dikelompokkan menurut Status Pengguna dan ID Pengguna:

  2. Pilih Buka di SQL Runner dari tab SQL di tabel Data untuk membuka kueri di SQL Runner:

  3. Setelah menjalankan kueri di SQL Runner (dengan mengklik tombol Run) dan mengonfirmasi hasilnya, pilih opsi Add to Project dari menu roda gigi SQL Runner untuk membuka pop-up Add to Project. Pada tahap ini, Anda perlu menghapus klausa batas baris dalam SQL tabel turunan untuk memastikan bahwa semua hasil yang diinginkan disertakan dalam kueri.

    Anda juga dapat memilih Get Derived Table LookML dari menu untuk menyalin dan menempelkan LookML yang dihasilkan ke dalam project Anda secara manual.
  4. Dari pop-up Add to Project, pilih nama project dari drop-down Project, masukkan nama untuk file tampilan tabel turunan, lalu pilih Add.
  5. Setelah tabel turunan berada dalam file tampilan, Anda dapat membuat ukuran yang menggabungkan ukuran yang didimensialisasikan. Misalnya, kini Anda dapat membuat ukuran type: average untuk dimensi total pendapatan baru, order_items_total_revenue:
          dimension: order_items_total_revenue {
            type:  number
            sql: ${TABLE}.order_items.total_revenue ;;
            value_format_name: usd
          }
    
          measure: average_revenue {
            type:  average
            sql:  ${order_items_total_revenue} ;;
            value_format_name: usd
          }
        
  6. Periksa kembali apakah kunci utama ditentukan dalam tabel turunan.
  7. Gabungkan tampilan baru ke dalam Jelajah asli (atau buat Jelajah baru) agar dapat membuat kueri dan konten dengan kolom baru.

Kesimpulan

Membuat dimensi ukuran dengan tabel turunan Looker akan membuka kemampuan baru dan memberikan kemampuan untuk membuat insight lebih lanjut dengan data Anda. Dengan kemampuan untuk mengelompokkan berdasarkan ukuran yang diukur dimensi, memfilter berdasarkan ukuran tersebut dalam klausa WHERE (bukan HAVING), melakukan pivot berdasarkan ukuran tersebut, dan membuat dimensi lain berdasarkan ukuran tersebut, Anda dapat mengarahkan kueri dan konten Jelajah ke dimensi berikutnya.

Buka halaman dokumentasi Tabel turunan untuk mengetahui informasi selengkapnya tentang cara membuat dan menggunakan tabel turunan, beserta pertimbangan dan tips pengoptimalan performa.