campos (para combinaciones)

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ámetro fields (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ámetro set.

Uso

explore: view_name_1 {
join: view_name_2 {
campos: [
field-or-set-specification,
field-or-set-specification,

...
]
}
Jerarquía
fields
Valor predeterminado
Todos los campos de la vista unida

Acepta
Corchetes que contienen una lista de campos o conjuntos separados por comas

Reglas especiales
  • Los nombres deben terminar siempre con un asterisco (*).
  • En el nivel de unión, los campos y los conjuntos solo se pueden incluir, no excluir. Sin embargo, puedes excluir todos los campos si usas el parámetro fields con una lista vacía, como la que se muestra a continuación: fields: []

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 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 de orders se mostrará como se esperaba, porque se encuentra en el conjunto ALL_FIELDS* que creamos.
  • No se mostrarán los elementos address de users, ya que no se incluían cuando se unía users (solo estaba name).
  • Tampoco se mostrará name de users, ya que no lo agregamos a Explorar en la fila fields: [orders.price, users.address].