fields (untuk gabungan)

Halaman ini merujuk pada parameter fields yang merupakan bagian dari gabungan.

fields juga dapat digunakan sebagai bagian dari Eksplorasi, yang dijelaskan di halaman dokumentasi parameter fields (untuk Eksplorasi).

fields juga dapat digunakan sebagai bagian dari set, yang dijelaskan di halaman dokumentasi parameter set.

Penggunaan

explore: view_name_1 {
  join: view_name_2 {
    fields: [
      field-or-set-specification,
      field-or-set-specification,
      ...
    ]
  }
}
Hierarki
fields
Nilai Default
Semua kolom dalam tampilan gabungan

Menerima
Tanda kurung siku yang berisi daftar kolom atau set yang dipisahkan koma

Aturan Khusus
  • Nama set selalu diakhiri dengan tanda bintang (*)
  • Di tingkat gabungan, kolom dan set hanya dapat disertakan, bukan dikecualikan. Namun, Anda dapat mengecualikan semua kolom menggunakan parameter fields dengan daftar kosong, seperti ini: fields: []

Definisi

fields di tingkat gabungan memungkinkan Anda menentukan kolom mana dari tabel virtual gabungan yang akan dimasukkan ke dalam Eksplorasi. Jika Anda tidak menggunakan fields, Looker akan menambahkan semua kolom dari tampilan secara default.

Daftar kolom dapat digunakan, seperti [field_a, field_b].

Anda juga dapat mereferensikan sekumpulan kolom (yang dibuat oleh parameter set), seperti [set_a*]. Tanda bintang memberi tahu Looker bahwa Anda mereferensikan nama set, bukan nama kolom.

Contoh

Hanya tambahkan kolom bernama name dari tampilan customer ke Eksplorasi order:

explore: order {
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
    fields: [name]
  }
}

Tambahkan kolom yang disebut name, address, dan age dari tampilan customer ke order Jelajahi:

explore: order {
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
    fields: [name, address, age]
  }
}

Tambahkan kumpulan kolom yang disebut order_fields dari tampilan customer ke Eksplorasi order:

explore: order {
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
    fields: [order_fields* ]
  }
}

Tantangan umum

fields hanya dapat mereferensikan kolom dari join-nya sendiri

fields akan menjadi turunan dari join, yang mereferensikan tampilan. Dimensi atau ukuran apa pun yang dirujuk dalam fields harus menjadi bagian dari tampilan tersebut. Misalnya, kita memiliki:

explore: order {
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
    fields: [name]
  }
}

Agar berfungsi dengan baik, dimensi atau ukuran yang disebut name harus ada di tampilan customer.

Yang perlu diketahui

Gunakan fields: [] dengan daftar kosong untuk mengecualikan semua kolom

Anda dapat mengecualikan semua kolom dari tampilan gabungan menggunakan parameter fields dengan daftar kosong dalam gabungan, seperti ini:

explore: order {
  join: customer {
    fields: []
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
}

Dalam contoh ini, tidak ada kolom dari tampilan customer yang akan ditampilkan di Eksplorasi order.

Satu-satunya cara untuk menghapus kolom di tingkat join adalah dengan mengecualikannya sekaligus dengan fields: []. Anda tidak dapat menggunakan set ALL_FIELDS* untuk mengecualikan semua kolom di tingkat join.

Namun, di tingkat explore, Anda dapat menggunakan set ALL_FIELDS* untuk mengecualikan item satu per satu, seperti yang dijelaskan di bagian Anda dapat mengecualikan item satu per satu dengan menggunakan fields dengan explore di halaman ini.

Anda dapat mengecualikan item satu per satu menggunakan fields dengan explore

Jika fields disarangkan di bawah parameter join, Anda dapat mengecualikan semua kolom sekaligus menggunakan fields: [] atau menyertakan kolom tertentu. Namun, Anda tidak dapat mengecualikan kolom tertentu satu per satu. Misalnya, jika Anda memiliki 100 kolom, dan Anda hanya ingin mengecualikan salah satunya, Anda harus mencantumkan semua 99 kolom yang Anda inginkan.

Namun, Anda dapat menyusun fields di bawah parameter explore untuk memanfaatkan set ALL_FIELDS*, lalu mengecualikan kolom. Contoh:

explore: order {
  fields: [
    ALL_FIELDS*,
    -customer.unwanted_field_a,
    -customer.unwanted_field_b
  ]
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
}

Perhatikan cara kita dapat mereferensikan kolom dari tampilan gabungan customer dalam parameter fields tingkat Eksplorasi dengan menggunakan sintaksis view_name.field_name.

Berbagai jenis parameter fields diterapkan pada waktu yang berbeda

Halaman ini menjelaskan fields saat disarangkan di bawah parameter join. Ada juga parameter fields serupa yang berada di bawah explore. Jika keduanya digunakan secara bersamaan, keduanya diterapkan dalam urutan tertentu, yang memengaruhi perilaku yang dihasilkan:

Pertama, semua parameter fields di bagian join diterapkan. Tindakan ini akan membuat kumpulan kolom yang dapat dipilih oleh Eksplorasi. Perhatikan contoh berikut:

explore: orders {
  join: users {
    fields: [name]
    sql_on: ${orders.user_id} = ${users.id} ;;
  }
}

Dalam hal ini, kolom yang akan tersedia adalah semuanya dari orders, dan name dari users. Ini adalah grup kolom yang akan ada di set ALL_FIELDS* (dijelaskan di bagian tentang mengecualikan item individual).

Sekarang, jika kita menambahkan parameter fields di bagian explore, kita menambahkan batasan di atas set tersebut. Misalkan kita melakukan hal berikut:

explore: orders {
  fields: [orders.price, users.address]
  join: users {
    fields: [name]
    sql_on: ${orders.user_id} = ${users.id} ;;
  }
}

Dalam kasus ini:

  • price dari orders akan muncul seperti yang diharapkan, karena berada dalam set ALL_FIELDS* yang kami buat.
  • address dari users tidak akan muncul, karena tidak disertakan saat users bergabung (hanya name yang disertakan).
  • name dari users juga tidak akan muncul, karena kami tidak menambahkannya ke Jelajahi di baris fields: [orders.price, users.address].