Esta página se refere ao
typeparâmetro que faz parte de uma união.
typetambém pode ser usado como parte de uma dimensão, conforme descrito na página de documentação Tipos de dimensões, filtros e parâmetros.
typetambém pode ser usado como parte de uma medida, conforme descrito na página de documentação Tipos de medidas.
typetambém pode ser usado como parte de um filtro de painel, conforme descrito na página de documentação Parâmetros do painel.
typetambém pode ser usado como parte de um elemento do dashboard, conforme descrito na página de documentação do parâmetrotype(para dashboards do LookML).
Uso
explore: view_name {
join: view_name_2 {
type: inner
}
}
|
Hierarquia
type |
Valor padrão
left_outer
Aceita
Um tipo de união (cross, full_outer, inner, left_outer)
Regras especiais
Quando você usa um type diferente de left_outer, convém usar always_join para garantir que as linhas resultantes incluam as restrições de união.
|
Definição
type permite descrever o tipo de união que você quer realizar.
Os valores possíveis do tipo de união são descritos nestas seções desta página:
left_outer (o valor padrão)

O tipo de união mais comum no Looker é left_outer. O motivo do uso frequente é descrito na seção left_outer geralmente são preferidos nesta página. Você pode conhecê-lo do SQL como um LEFT JOIN. Quando você usa esse type, todas as linhas da Análise são incluídas e os dados da visualização unida são importados, se disponíveis.

full_outer

O tipo de união full_outer, que você pode conhecer do SQL como um FULL OUTER JOIN, inclui todas as linhas da Análise e da visualização unida, mesmo que não haja dados correspondentes da outra visualização.

inner

O tipo de união inner, que você pode conhecer do SQL como um JOIN ou INNER JOIN, inclui apenas linhas que têm registros correspondentes na Análise e na visualização unida.

cross

O tipo de união cross, que você pode conhecer do SQL como um CROSS JOIN, raramente é usado. Às vezes, ele é útil para preenchimento zero ou geração de matriz. Ele cria uma linha para cada combinação da Análise e da visualização unida.

Exemplos
Use um FULL OUTER JOIN para adicionar dados de user aos dados de order, mesmo que o usuário não tenha feito um pedido:
explore: order {
join: user {
sql_on: ${order.user_id} = ${user.id} ;;
type: full_outer
}
}
Use um INNER JOIN para adicionar dados de user aos dados de event e limitar os resultados apenas aos eventos gerados por um usuário:
explore: event {
join: user {
sql_on: ${event.user_id} = ${user.id} ;;
type: inner
}
}
Use um CROSS JOIN para gerar todas as combinações possíveis de owner e property:
explore: property {
join: owner {
sql_on: 1 = 1 ;; # this sql_on condition is required in some dialects,
type: cross # but causes problems in other dialects, try adding or
} # removing if you experience problems with cross joins
}
Informações importantes
Os tipos de união left_outer geralmente são preferidos
Ao aprender e usar o SQL, muitas pessoas se concentram principalmente em JOIN, que é tecnicamente conhecido como "união interna". Por esse motivo, pode-se presumir que type: inner_join deve ser usado na maioria dos casos. No entanto, o Looker normalmente funciona melhor com type: left_outer, que é como usar um LEFT JOIN no SQL.
O motivo é que a visualização associada a uma Análise (em oposição às visualizações unidas a uma Análise) geralmente é o dado "principal". Por exemplo, você pode ter uma Análise com base em informações de eventos. Alguns dos eventos podem ser gerados pelo sistema e outros pelos usuários. Se você unir user a event usando um JOIN normal, só poderá ver os eventos criados por um usuário e perderá a visibilidade dos eventos do sistema. Ao usar um LEFT JOIN, você poderá ver todos os eventos, independentemente de haver um usuário associado a eles.
Convém usar always_join se a restrição de linhas for importante
Quando o Looker gera SQL para uma consulta, ele tenta criar o SQL mais limpo possível e só usa as uniões necessárias para os campos selecionados por um usuário. Quando você usa type para definir algo diferente de um LEFT JOIN, talvez você sempre queira que uma determinada união (ou conjunto de uniões) faça parte da consulta para garantir que as linhas resultantes incluam as restrições de união. Para isso, use o always_join parâmetro.