Esta página se refere ao parâmetro
fields
que faz parte de uma mesclagem.O
fields
também pode ser usado como parte de uma exploração, descrita na página de documentação do parâmetrofields
(para explorações).O
fields
também pode ser usado como parte de um conjunto, descrito na página de documentação do parâmetroset
.
Uso
join: view_name_2 {
campos: [
field-or-set-specified,
field-or-set-specified,
...
]
}
}
Hierarquia
fields |
Valor padrão
Todos os campos na visualização mescladaAceita
Colchetes contendo uma lista de campos ou conjuntos separados por vírgulasRegras especiais
|
Definição
fields
no nível da mesclagem permite que você especifique quais campos de uma visualização mesclada são trazidos para uma exploração. Se você não usar fields
, os padrões do Looker serão adicionados para todos os campos da visualização.
Uma lista de campos pode ser usada, como [field_a, field_b]
.
Também é possível referenciar um conjunto de campos, que são criados pelo parâmetro set
, como [set_a*]
. O asterisco informa ao Looker que você faz referência a um nome de conjunto em vez de um nome de campo.
Examples
Adicione apenas o campo chamado name
da visualização customer
ao order
"Explorar":
explore: order {
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
fields: [name]
}
}
Adicione os campos chamados name
, address
e age
da visualização customer
ao Explorar order
:
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
ao order
"Explorar":
explore: order {
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
fields: [order_fields* ]
}
}
Desafios comuns
fields
só pode referenciar campos do próprio join
.
fields
será filho de um join
, que referencia uma visualização. Todas as dimensões ou medidas referenciadas em fields
precisam fazer parte dessa visualização. Por exemplo, imagine que temos:
explore: order {
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
fields: [name]
}
}
Para funcionar corretamente, uma dimensão ou medida chamada name
precisa existir na visualização customer
.
Informações úteis
Use fields: []
com uma lista vazia para excluir todos os campos
É possível excluir todos os campos de uma visualização mesclada usando o parâmetro fields
com uma lista vazia na mesclagem, desta forma:
explore: order {
join: customer {
fields: []
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
Neste exemplo, nenhum dos campos da visualização customer
será exibido em order
Explore.
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 da explore
, é possível usar o conjunto de ALL_FIELDS*
para excluir itens individuais, conforme descrito na seção É possível excluir itens individuais usando fields
com explore
nesta página.
Você pode excluir itens individuais usando fields
com explore
Quando fields
estiver aninhado em um parâmetro join
, será possível excluir todos os campos de uma vez usando fields: []
ou incluir campos específicos. No entanto, não é possível excluir campos específicos individualmente. Por exemplo, se você tiver 100 campos e quiser excluir apenas um deles, precisará listar todos os 99 campos que quiser.
No entanto, você pode 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 que conseguimos referenciar campos da visualização mesclada customer
no parâmetro fields
do nível "Explorar" usando a sintaxe view_name.field_name
.
Diferentes tipos de parâmetros fields
são aplicados em momentos distintos
Esta página descreve o 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 podem ser escolhidos pelo Explorar. Veja este exemplo:
explore: orders {
join: users {
fields: [name]
sql_on: ${orders.user_id} = ${users.id} ;;
}
}
Nesse caso, os campos disponíveis são todos de orders
e name
de users
. Esse é o grupo de campos que estaria no conjunto ALL_FIELDS*
(descrito acima).
Agora, se adicionarmos um parâmetro fields
em explore
, adicionaremos uma restrição nesse conjunto. Imagine que fizemos isso:
explore: orders {
fields: [orders.price, users.address]
join: users {
fields: [name]
sql_on: ${orders.user_id} = ${users.id} ;;
}
}
Nesse caso:
price
deorders
será exibido conforme o esperado, porque ele está no conjuntoALL_FIELDS*
que criamos.- Os
address
deusers
não serão exibidos porque não estavam incluídos quandousers
entrou (apenasname
estava). - O
name
deusers
também não será exibido porque não o adicionamos ao recurso Explorar na linhafields: [orders.price, users.address]
.