Esta página se refere ao parâmetro
fields, que faz parte de uma junção.
fieldstambém pode ser usado como parte de uma análise detalhada, conforme descrito na página de documentação do parâmetrofields(para análises detalhadas).
fieldstambém pode ser usado como parte de um conjunto, descrito na página de documentação do parâmetroset.
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
|
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:
pricedeordersvai aparecer conforme o esperado porque está no conjuntoALL_FIELDS*que criamos.addressdeusersnão vai aparecer porque não foi incluído quandousersfoi associado (apenasnamefoi).namedeuserstambém não vai aparecer porque não adicionamos a opção "Analisar" na linhafields: [orders.price, users.address].