En esta página, se hace referencia al parámetro
fields
que forma parte de una unión.
fields
también se puede usar como parte de Explorar, descrito en la página de documentación del parámetrofields
(para Explorar).
fields
también se puede usar como parte de un conjunto, que se describe en la página de documentación del parámetroset
.
Uso
join: view_name_2 {
campos: [
field-or-set-specification,
field-or-set-specification,
...
]
}
Jerarquía
fields |
Valor predeterminado
Todos los campos de la vista unidaAcepta
Corchetes que contienen una lista de campos o conjuntos separados por comasReglas especiales
|
Definición
fields
a nivel de unión te permite especificar qué campos de una vista unida se llevan a Explorar. Si no usas fields
, Looker agrega de forma predeterminada todos los campos de la vista.
Se puede usar una lista de campos, como [field_a, field_b]
.
También puedes hacer referencia a un conjunto de campos (que crea el parámetro set
), como [set_a*]
. El asterisco le indica a Looker que se hace referencia a un nombre de conjunto en lugar de un nombre de campo.
Ejemplos
Solo agrega el campo name
desde la vista customer
a order
Explorar:
explore: order {
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
fields: [name]
}
}
Agrega los campos name
, address
y age
de la vista customer
a order
Explorar:
explore: order {
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
fields: [name, address, age]
}
}
Agrega el conjunto de campos llamado order_fields
de la vista customer
a order
Explorar:
explore: order {
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
fields: [order_fields* ]
}
}
Desafíos habituales
fields
solo puede hacer referencia a campos de su propia join
fields
será un elemento secundario de join
, que hace referencia a una vista. Las dimensiones o medidas a las que se hace referencia en fields
deben formar parte de esa vista. Por ejemplo, supongamos que tenemos lo siguiente:
explore: order {
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
fields: [name]
}
}
Para que funcione correctamente, debe existir una dimensión o una medida denominada name
en la vista customer
.
Qué debes saber
Usa fields: []
con una lista vacía para excluir todos los campos
Puede excluir todos los campos de una vista unida mediante el parámetro fields
con una lista vacía en su combinación, de la siguiente manera:
explore: order {
join: customer {
fields: []
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
En este ejemplo, ninguno de los campos de la vista customer
se mostrará en la exploración de order
.
La única forma de quitar campos en el nivel de join
es excluirlos todos a la vez con fields: []
. No puedes usar el ALL_FIELDS*
configurado para excluir todos los campos del nivel join
.
Sin embargo, a nivel de explore
, puedes usar el ALL_FIELDS*
configurado para excluir elementos individuales, como se describe en la sección Puedes excluir elementos individuales mediante fields
con la sección explore
en esta página.
Puede excluir elementos individuales mediante fields
con explore
Cuando fields
está anidado en un parámetro join
, puedes excluir todos los campos a la vez mediante fields: []
o puedes incluir campos específicos. Sin embargo, no es posible excluir campos específicos. Por ejemplo, si tiene 100 campos y solo desea excluir uno, debe enumerar los 99 campos que sí desea.
Sin embargo, puedes anidar fields
en el parámetro explore
para aprovechar el conjunto ALL_FIELDS*
y, luego, excluir campos. Por ejemplo:
explore: order {
fields: [
ALL_FIELDS*,
-customer.unwanted_field_a,
-customer.unwanted_field_b
]
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
Observa cómo pudimos hacer referencia a los campos de la vista unida customer
en el parámetro fields
del nivel Explorar con la sintaxis view_name.field_name
.
Se aplican diferentes tipos de parámetros fields
en diferentes momentos
En esta página, se describe fields
cuando está anidada en un parámetro join
. También hay un parámetro fields
similar anidado en explore
. Cuando se usan al mismo tiempo, se aplican en un orden específico, lo que afecta el comportamiento resultante:
Primero, se aplican todos los parámetros de fields
en join
. Esto crea el conjunto de campos que la opción Explorar puede elegir. Considera el siguiente ejemplo:
explore: orders {
join: users {
fields: [name]
sql_on: ${orders.user_id} = ${users.id} ;;
}
}
En este caso, los campos que estarán disponibles son todos los de orders
y name
de users
. Este es el grupo de campos que se incluirían en el conjunto ALL_FIELDS*
(descrito antes).
Ahora, si agregamos un parámetro fields
en explore
, agregaremos una restricción a ese conjunto. Supongamos que hicimos esto:
explore: orders {
fields: [orders.price, users.address]
join: users {
fields: [name]
sql_on: ${orders.user_id} = ${users.id} ;;
}
}
En este caso, haz lo siguiente:
price
deorders
se mostrará como se esperaba, porque se encuentra en el conjuntoALL_FIELDS*
que creamos.- No se mostrarán los elementos
address
deusers
, ya que no se incluían cuando se uníausers
(solo estabaname
). - Tampoco se mostrará
name
deusers
, ya que no lo agregamos a Explorar en la filafields: [orders.price, users.address]
.