Expressões do Looker
As expressões do Looker (por vezes, denominadas Lexp) são usadas para fazer cálculos para:
Uma expressão do Looker é criada a partir de uma combinação destes elementos:
NULL: o valor
NULL
indica que não existem dados e pode ser útil quando quer verificar se algo está vazio ou não existe.Uma constante: uma constante é um valor imutável que fornece. Um número, como
7
, ou uma string, comoCompleted
, são constantes.Um campo do Looker: uma referência a um campo do Looker, que inclui dimensões, medidas e cálculos de tabelas.
Um operador do Looker: existem vários tipos de operadores (que estão listados na página de documentação Funções e operadores do Looker):
- Operadores matemáticos (como
+
,-
,*
e/
) - Operadores de comparação (como
=
,>
e<=
) - Operadores lógicos (como
AND
,OR
eNOT
)
- Operadores matemáticos (como
Uma função do Looker: estas funções são semelhantes às funções do Excel. As funções permitem-lhe transformar os dados ou fazer referência a dados de formas complexas. Todas as funções disponíveis estão listadas na página de documentação Funções e operadores do Looker.
Criar expressões do Looker
Os cálculos de tabelas, os campos personalizados e os filtros personalizados usam o editor de expressões do Looker. À medida que escreve a expressão, o Looker apresenta sugestões de funções, operadores e nomes de campos que pode querer usar.
Ver todas as sugestões
Aceda ao editor de expressões do Looker numa análise detalhada criando cálculos de tabelas, um campo personalizado ou um filtro personalizado.
Escreva um espaço para ver uma lista de todos os campos, funções e operadores que pode escolher. Se um campo estiver selecionado atualmente na funcionalidade Explorar, o Looker apresenta um ponto preto à esquerda do campo e apresenta o campo na parte superior da lista.
Comece a escrever no editor de expressões do Looker para reduzir a lista aos itens do seu interesse.
O editor de campos personalizados apresenta os campos de exploração que estão atualmente em utilização, se forem compatíveis com a função do campo personalizado.
Adicionar um campo
Para incluir um campo do Looker na sua expressão, comece a escrever o nome do campo. À medida que escreve, o editor restringe a pesquisa a uma lista de campos e funções que contêm o que escreveu. Pode escrever o nome do campo tal como aparece na página Explorar ou usar o respetivo nome LookML, se o souber.
Quando seleciona um campo na lista, o Looker adiciona-o à expressão com o nome LookML no formato ${view_name.field_name}
. Isto garante que todos os campos têm nomes exclusivos na expressão.
Adicionar totais
Se estiver a criar uma expressão baseada numa exploração onde apresentou totais, também pode incluir totais de colunas e linhas na sua expressão. Os totais das colunas aparecem no editor com a palavra Total antes da iteração do LookML do nome do campo. Por exemplo, para um campo denominado Count, o Looker atribui ao total da coluna desse campo o nome Count - Total
.
O nome do LookML para os totais está no formato ${view_name.field_name:total}
, em que :total
é adicionado ao final do nome do campo.
Para os totais das linhas, as palavras Totais das linhas aparecem antes do nome do campo no editor. No nome do LookML do campo, :row_total
é adicionado ao final do nome do campo, como ${view_name.field_name:row_total}
.
Adicionar operadores
Se necessário, pode adicionar operadores lógicos, como AND
, OR
e NOT
, à sua expressão. Normalmente, os operadores AND
são avaliados antes dos operadores OR
, mas pode substituir este comportamento usando parênteses. Também pode usar operadores de comparação (como >
, =
e <=
) e operadores matemáticos (como +
e *
).
Quando passa o cursor sobre um operador, as notas de utilização adequada são apresentadas no painel de informações.
Adicionar funções
Para incluir uma função do Looker na sua expressão, comece a escrever o nome da função. À medida que escreve, o editor restringe a pesquisa a uma lista de campos e funções que contêm o que escreveu.
As funções podem ser compostas por argumentos (ou variáveis) que requerem um determinado tipo, como um campo, um número ou sim/não. Quando passa o cursor do rato sobre uma função, pode verificar as notas apresentadas junto à expressão no painel de informações para compreender que argumentos tem de fornecer e que tipo têm de ser.
Pode consultar a lista completa de funções que o Looker oferece na página de documentação Funções e operadores do Looker.
Usar sugestões de erros e o painel de informações
O Looker apresenta um painel de informações junto ao editor de expressões do Looker. Este painel fornece documentação e sugestões, especialmente se tiver um erro na sua expressão.
O painel de informações junto ao editor de expressões fornece as seguintes informações:
Realce de erros: o Looker sublinha a vermelho todas as partes da expressão que ainda não estão corretas.
Sugestões e detalhes de erros: o Looker dá sugestões sobre o que adicionar a seguir na sua expressão. Se existir um erro, explica por que motivo está a ocorrer. Se existirem vários erros, o erro que lhe é apresentado baseia-se na localização do cursor.
Documentação: o Looker apresenta documentação sobre a função ou o operador com que está a trabalhar, com base na posição do cursor. Por exemplo, enquanto escreve o primeiro argumento de uma função
if()
, o Looker fornece as informações de que o primeiro argumento deve ser avaliado como verdadeiro ou falso. Pode clicar no nome da função para navegar para a documentação dessa função.
Incluindo comentários
Pode incluir comentários em expressões do Looker começando a linha de comentário com #
no editor de expressões.
Usar campos
Por vezes, é útil usar o valor de um campo (uma dimensão, uma medida ou um cálculo da tabela) numa expressão. Pode querer adicionar o valor do campo a outra coisa, verificar se tem um determinado valor, incluí-lo numa função ou muitas outras possibilidades.
Conforme descrito anteriormente nesta página, pode escrever o nome do campo no editor de expressões e o Looker ajuda a encontrar a forma correta de fazer referência ao campo. Quando adiciona um campo a uma expressão, o Looker usa o identificador LookML do campo, que se assemelha a ${view_name.field_name}
. Escreva o nome do campo tal como aparece no selecionador de campos. O editor de expressões mostra o nome do selecionador de campos e o identificador LookML em conjunto.
Existem várias formas de obter um valor:
Obter um valor da mesma linha: a forma mais básica de usar um campo é referenciá-lo diretamente. Por exemplo, a sua expressão pode usar
${product.category}
. Quando faz isto, está a dizer "para qualquer linha, obtenha a categoria de produtos dessa linha".Obter um valor de uma linha diferente: também pode obter o valor de um campo de uma linha diferente. Por exemplo, pode querer a lógica "para qualquer linha, obter a categoria do produto da linha anterior". Para tal, pode usar uma função de desvio (consulte esta lista de funções posicionais). A função OFFSET pode ter o seguinte aspeto:
offset(${product.category}, -1)
.Obter um valor de uma coluna com rotação: também pode obter valores de colunas com rotação. Por exemplo, pode querer a lógica "para qualquer linha, obter as vendas totais da primeira coluna com tabela dinâmica". Para trabalhar com colunas dinâmicas, tem de usar funções dinâmicas (consulte esta lista de funções dinâmicas). A função de tabela dinâmica pode ter o seguinte aspeto:
pivot_index(${order.total_sales}, 1)
.Obtenha um total de uma linha ou uma coluna: se adicionou totais à funcionalidade Explorar, pode obter valores totais da coluna ou da linha adicionando
:total
(para totais de colunas) ou:row_total
(para totais de linhas) ao nome do campo, usando o formato${field_name:total}
. Por exemplo, se quiser uma percentagem do total de uma contagem de Encomendas, pode criar um cálculo de tabela da seguinte forma:${orders.count} / ${orders.count:total}
.
Usar operadores
As expressões do Looker podem incluir operadores lógicos, de comparação e matemáticos para criar diferentes condições:
- Operadores lógicos (como
AND
,OR
eNOT
) - Operadores de comparação (como
>
e<
) - Operadores matemáticos (como
+
e-
)
A menos que especifique o contrário com parênteses, a lógica AND
é considerada antes da lógica OR
. A seguinte expressão sem parênteses adicionais:
if (
${order_items.days_to_process}>=4 OR
${order_items.shipping_time}>5 AND
${order_facts.is_first_purchase},
"review", "okay")
É avaliado como:
if (
${order_items.days_to_process}>=4 OR
(${order_items.shipping_time}>5 AND ${order_facts.is_first_purchase}),
"review", "okay")
No Looker, deve usar yes
e no
em vez de true
e false
. Estas constantes lógicas não são o mesmo que as palavras "yes"
e "no"
, que estão entre aspas. Consulte a descrição das constantes lógicas para ver mais detalhes.
Usar funções
As expressões do Looker incluem frequentemente uma ou mais funções, que ajudam a obter determinados dados ou a calcular determinadas situações. São semelhantes às funções do Excel.
As funções têm a forma de um nome seguido de dois parênteses, como este: my_function()
. Pode ter de fornecer informações entre esses parênteses, separadas por vírgulas. Estas informações são denominadas "argumentos" e têm o seguinte aspeto: my_function(argument_1, argument_2)
.
Por exemplo, a função now
não recebe argumentos e indica a data e a hora atuais. Use-o da seguinte forma: now()
.
A função round
aceita um argumento, que é um número. Use-o da seguinte forma: round(3.2)
. O resultado é 3
.
Existem duas formas de saber que argumentos tem de fornecer, se for o caso:
- O painel de informações que aparece junto ao editor de expressões fornece alguma documentação sobre a função que está a escrever. Pode clicar no nome da função para navegar para a respetiva documentação.
- Também pode navegar diretamente para a página de documentação Funções e operadores do Looker e procurar a função que quer usar.
Considere a função contains
, que tem uma documentação semelhante à seguinte:
Função | Sintaxe | Finalidade |
---|---|---|
contém | contains(string, search_string) |
Devolve Yes se string contiver search_string e No caso contrário |
Pode ver que são necessários dois argumentos. Têm os nomes string
e search_string
, mas isso não significa que tenha de escrever a palavra exata "string" e "search_string" na função. Estes são apenas nomes para os argumentos que vai substituir por algo. Lendo a finalidade, vemos que string
deve ser um campo ou outro valor que queremos pesquisar em, enquanto search_string
é o que queremos pesquisar para. Um exemplo pode ser:
contains(${customer.feedback_text}, "great")
Se a palavra "excelente" aparecer no feedback do cliente, esta função dá um resultado de Yes
. Caso contrário, dá um resultado de No
.
Pode colocar funções dentro de outras funções para processar lógica complexa. Desde que o resultado da função interna seja adequado para os argumentos da função externa, funciona. Por exemplo:
contains(
if(
is_null(${customer.feedback_text}),
${customer.comment_text},
${customer.feedback_text}
),
"great")
A função is_null
está aninhada numa função if
, que, por sua vez, está numa função contains
. Funciona da seguinte forma:
- A função
is_null()
verifica o texto de feedback dos clientes. - Em seguida, a função
if()
usa esse resultado e devolve o texto do feedback do cliente, se existir, ou devolve o texto do comentário do cliente. - Por último, a função
contains()
usa o texto devolvido pela funçãoif()
e procura a palavra "ótimo".
Logicamente, esta expressão significa: "Se houver feedback dos clientes, pesquise nesse feedback. Caso contrário, pesquise nos comentários dos clientes. Em ambos os casos, procure a palavra "ótimo".