campos (para junções)

Esta página se refere ao parâmetro fields, que faz parte de uma junção.

fields também pode ser usado como parte de uma análise detalhada, conforme descrito na página de documentação do parâmetro fields (para análises detalhadas).

fields também pode ser usado como parte de um conjunto, descrito na página de documentação do parâmetro set.

Uso

explore: view_name_1 {
  join: view_name_2 {
    fields: [
      field-or-set-specification,
      field-or-set-specification,
      ...
    ]
  }
}
Hierarquia
fields
Valor padrão
Todos os campos na visualização combinada

Aceita
Colchetes contendo uma lista de campos ou conjuntos separados por vírgulas

Regras especiais
  • Os nomes de conjuntos sempre terminam com um asterisco (*).
  • No nível da junção, os campos e conjuntos só podem ser incluídos, não excluídos. No entanto, é possível excluir todos os campos usando o parâmetro fields com uma lista vazia, assim: fields: []

Definição

fields no nível da junção permite especificar quais campos de uma visualização unida são incluídos em uma análise detalhada. Se você não usar fields, o Looker vai adicionar todos os campos da visualização por padrão.

Uma lista de campos pode ser usada, como [field_a, field_b].

Também é possível fazer referência a um conjunto de campos (criados pelo parâmetro set), como [set_a*]. O asterisco informa ao Looker que você está fazendo referência a um nome de conjunto em vez de um nome de campo.

Exemplos

Adicione apenas o campo chamado name da visualização customer à análise detalhada order:

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

Adicione os campos name, address e age da visualização customer à página order "Explorar":

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

Adicione o conjunto de campos chamado order_fields da visualização customer à Análise order:

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

Desafios comuns

fields só pode fazer referência a campos do próprio join

fields será filho de um join, que faz referência a uma visualização. Todas as dimensões ou métricas referenciadas em fields precisam fazer parte dessa visualização. Por exemplo, suponha que temos:

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

Para funcionar corretamente, uma dimensão ou métrica chamada name precisa existir na visualização customer.

Informações importantes

Use fields: [] com uma lista vazia para excluir todos os campos

É possível excluir todos os campos de uma visualização combinada usando o parâmetro fields com uma lista vazia na junção, assim:

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

Neste exemplo, nenhum dos campos da visualização customer será mostrado na Análise order.

A única maneira de remover campos no nível join é excluir todos de uma vez com fields: []. Não é possível usar o conjunto ALL_FIELDS* para excluir todos os campos no nível join.

No entanto, no nível explore, é possível usar o conjunto ALL_FIELDS* para excluir itens individuais, conforme descrito na seção É possível excluir itens individuais usando fields com explore nesta página.

É possível excluir itens individuais usando fields com explore.

Quando fields está aninhado em um parâmetro join, é possível excluir todos os campos de uma só vez usando fields: [] ou incluir campos específicos. No entanto, não é possível excluir campos específicos um de cada vez. Por exemplo, se você tivesse 100 campos e quisesse excluir apenas um deles, precisaria listar todos os 99 campos que não queria.

No entanto, é possível aninhar fields no parâmetro explore para aproveitar o conjunto ALL_FIELDS* e excluir campos. Exemplo:

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

Observe como foi possível referenciar campos da visualização unida customer no parâmetro fields do nível de análise detalhada usando a sintaxe view_name.field_name.

Diferentes tipos de parâmetros fields são aplicados em momentos diferentes

Nesta página, descrevemos fields quando ele está aninhado em um parâmetro join. Há também um parâmetro fields semelhante, aninhado em explore. Quando ambos são usados ao mesmo tempo, eles são aplicados em uma ordem específica, o que afeta o comportamento resultante:

Primeiro, todos os parâmetros fields em join são aplicados. Isso cria o conjunto de campos que a Análise pode escolher. Por exemplo,

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

Nesse caso, os campos disponíveis são tudo de orders e name de users. Esse é o grupo de campos que estaria no conjunto ALL_FIELDS* (descrito na seção sobre como excluir itens individuais).

Agora, se adicionarmos um parâmetro fields em explore, vamos adicionar uma restrição a esse conjunto. Suponha que fizemos isso:

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

Nesse caso:

  • price de orders vai aparecer conforme o esperado porque está no conjunto ALL_FIELDS* que criamos.
  • address de users não vai aparecer porque não foi incluído quando users foi associado (apenas name foi).
  • name de users também não vai aparecer porque não adicionamos a opção "Analisar" na linha fields: [orders.price, users.address].