本頁面是指 加入程序中的
fields參數。
fields也可做為「探索」的一部分,詳情請參閱「fields(適用於探索)」參數說明文件頁面。
fields也可以做為集合的一部分,詳情請參閱set參數說明文件頁面。
用量
explore: view_name_1 {
join: view_name_2 {
fields: [
field-or-set-specification,
field-or-set-specification,
...
]
}
}
|
階層
fields |
預設值
彙整檢視畫面中的所有欄位
接受
方括號,內含以半形逗號分隔的欄位或集合清單
特別規則
|
定義
fields,您可以在彙整層級指定要將彙整檢視區塊中的哪些欄位帶入「探索」。如果您未使用 fields,Looker 預設會新增檢視區塊中的所有欄位。
可以使用欄位清單,例如 [field_a, field_b]。
您也可以參照一組欄位 (由 set 參數建立),例如 [set_a*]。星號會告訴 Looker,您參照的是集合名稱,而非欄位名稱。
範例
只將 name 欄位從 customer 檢視畫面新增至 order 探索:
explore: order {
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
fields: [name]
}
}
將 customer 檢視畫面中的 name、address 和 age 欄位新增至 order 探索:
explore: order {
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
fields: [name, address, age]
}
}
將 customer 檢視畫面中的 order_fields 欄位集新增至 order 探索:
explore: order {
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
fields: [order_fields* ]
}
}
常見挑戰
fields 只能參照自身 join 的欄位
fields 會是 join 的子項,參照檢視區塊。fields 中參照的任何維度或指標都必須是該檢視的一部分。舉例來說,假設我們有:
explore: order {
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
fields: [name]
}
}
如要正常運作,customer 檢視畫面中必須有名為 name 的維度或指標。
注意事項
使用 fields: [] 和空白清單排除所有欄位
您可以在聯結中使用 fields 參數搭配空白清單,從聯結檢視畫面中排除「所有」欄位,如下所示:
explore: order {
join: customer {
fields: []
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
在本例中,customer 檢視區塊的任何欄位都不會顯示在 order 探索中。
如要移除 join 層級的欄位,唯一方法是使用 fields: [] 一次排除所有欄位。您無法使用 ALL_FIELDS* 排除 join 層級的所有欄位。
不過,在 explore 層級,您可以使用 ALL_FIELDS* 集合排除個別項目,如本頁「您可以使用 fields 和 explore 排除個別項目」一節所述。
你可以使用 fields 和 explore 排除個別項目
當 fields 巢狀結構位於 join 參數下方時,您可以使用 fields: [] 一次排除所有欄位,也可以納入特定欄位。但無法逐一排除特定欄位。舉例來說,如果您有 100 個欄位,但只想排除其中一個,就必須列出您想保留的 99 個欄位。
不過,您可以改為將 fields 巢狀結構化至 explore 參數下方,藉此運用 ALL_FIELDS* 集合並排除欄位。例如:
explore: order {
fields: [
ALL_FIELDS*,
-customer.unwanted_field_a,
-customer.unwanted_field_b
]
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
請注意,我們如何使用 view_name.field_name 語法,在「探索」層級的 fields 參數中,參照已彙整檢視區塊 customer 的欄位。
不同類型的 fields 參數會在不同時間套用
本頁面說明 fields 巢狀結構位於 join 參數下方時的情況。此外,explore 底下也有類似的 fields 參數。如果同時使用這兩項設定,系統會依特定順序套用,進而影響最終行為:
首先,系統會套用 join 下的所有 fields 參數。這樣一來,探索檢視表就能從中選擇欄位。請參閱以下範例:
explore: orders {
join: users {
fields: [name]
sql_on: ${orders.user_id} = ${users.id} ;;
}
}
在本例中,可用的欄位包括 orders 中的所有內容,以及 users 中的 name。這是 ALL_FIELDS* 集中的欄位群組 (如排除個別項目一節所述)。
現在,如果我們在 explore 下方新增 fields 參數,就會在該組限制條件之上新增限制。假設我們執行下列操作:
explore: orders {
fields: [orders.price, users.address]
join: users {
fields: [name]
sql_on: ${orders.user_id} = ${users.id} ;;
}
}
在這種情況下:
price會如預期顯示,因為它位於我們建立的ALL_FIELDS*集中。ordersusers的address「不會」顯示,因為加入users時未包含該使用者 (只有name)。name中的users也不會顯示,因為我們未將其新增至fields: [orders.price, users.address]列的「探索」。