Tipo

Esta página se refere ao type parâmetro que faz parte de uma união.

type també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.

type também pode ser usado como parte de uma medida, conforme descrito na página de documentação Tipos de medidas.

type também pode ser usado como parte de um filtro de painel, conforme descrito na página de documentação Parâmetros do painel.

type também pode ser usado como parte de um elemento do dashboard, conforme descrito na página de documentação do parâmetro type (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.