En esta página, se hace referencia al parámetro
fieldsque forma parte de una unión.
fieldstambién se puede usar como parte de una exploración, como se describe en la página de documentación del parámetrofields(para exploraciones).
fieldstambién se puede usar como parte de un conjunto, como se describe en la página de documentación del parámetroset.
Uso
explore: view_name_1 {
join: view_name_2 {
fields: [
field-or-set-specification,
field-or-set-specification,
...
]
}
}
|
Jerarquía
fields |
Valor predeterminado
Todos los campos de la vista combinada
Acepta
Corchetes que contienen una lista de campos o conjuntos separados por comas
Reglas especiales
|
Definición
fields a nivel de la unión te permite especificar qué campos de una vista unida se incorporan a una exploración. Si no usas fields, Looker agregará 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 se crean con el parámetro set), como [set_a*]. El asterisco le indica a Looker que haces referencia a un nombre de conjunto en lugar de a un nombre de campo.
Ejemplos
Solo agrega el campo llamado name de la vista customer a la exploración order:
explore: order {
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
fields: [name]
}
}
Agrega los campos llamados name, address y age de la vista customer a la exploración order:
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 la exploración order:
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 propio join
fields será un elemento secundario de un join, que hace referencia a una vista. Todas 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 medición llamada name en la vista customer.
Información importante
Usa fields: [] con una lista vacía para excluir todos los campos
Puedes excluir todos los campos de una vista combinada usando el parámetro fields con una lista vacía en tu unión, de la siguiente manera:
explore: order {
join: customer {
fields: []
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
En este ejemplo, no se mostrará ninguno de los campos de la vista customer en la exploración order.
La única forma de quitar campos en el nivel join es excluirlos todos a la vez con fields: []. No puedes usar el conjunto ALL_FIELDS* para excluir todos los campos en el nivel join.
Sin embargo, a nivel de explore, puedes usar el conjunto ALL_FIELDS* para excluir elementos individuales, como se describe en la sección Puedes excluir elementos individuales con fields y explore de esta página.
Puedes excluir elementos individuales con fields y explore.
Cuando fields se anida en un parámetro join, puedes excluir todos los campos a la vez con fields: [] o incluir campos específicos. Sin embargo, no puedes excluir campos específicos de a uno por vez. Por ejemplo, si tuvieras 100 campos y solo quisieras excluir uno de ellos, deberías enumerar los 99 campos que sí deseas.
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 combinada customer en el parámetro fields del nivel de Explorar usando la sintaxis view_name.field_name.
Los diferentes tipos de parámetros de fields se aplican en diferentes momentos.
En esta página, se describe fields cuando se anida en un parámetro join. También hay un parámetro fields similar que está anidado en explore. Cuando se usan ambos al mismo tiempo, se aplican en un orden específico, lo que afecta el comportamiento resultante:
Primero, se aplican todos los parámetros fields en join. Esto crea el conjunto de campos entre los que puede elegir la exploración. 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ía en el conjunto ALL_FIELDS* (se describe en la sección sobre cómo excluir elementos individuales).
Ahora, si agregamos un parámetro fields en explore, agregamos una restricción sobre ese conjunto. Supongamos que hicimos lo siguiente:
explore: orders {
fields: [orders.price, users.address]
join: users {
fields: [name]
sql_on: ${orders.user_id} = ${users.id} ;;
}
}
En este caso, ocurre lo siguiente:
pricedeordersaparecerá como se espera, ya que está en el conjuntoALL_FIELDS*que creamos.addressdeusersno aparecerá porque no se incluyó cuando se unióusers(solo se incluyóname).namedeuserstampoco aparecerá, ya que no lo agregamos a Explorar en la filafields: [orders.price, users.address].