Expressões de Looker
As expressões do Looker (às vezes chamadas de Lexp) são usadas para fazer cálculos em:
Uma expressão do Looker é criada a partir de uma combinação destes elementos:
NULL:o valor
NULL
indica que não há dados e pode ser útil quando você quer verificar se algo está vazio ou não existe.Uma constante:é um valor que você fornece e que não muda. 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 tabela.
Um operador do Looker:há vários tipos de operadores (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:tem natureza semelhante às funções do Excel. Com as funções, você pode transformar seus dados ou dados de referência de maneiras complexas. Todas as funções disponíveis estão listadas na página de documentação Funções e operadores do Looker.
Como criar expressões do Looker
Cálculos de tabela, campos personalizados e filtros personalizados usam o editor de expressões do Looker. Conforme você digita a expressão, o Looker sugere funções, operadores e nomes de campos que você pode usar.
Como ver todas as sugestões
Acesse o editor de expressões do Looker em uma análise detalhada criando cálculos de tabela, campos personalizados ou filtros personalizados.
Digite um espaço para ver uma lista de todos os campos, funções e operadores disponíveis. Se um campo estiver selecionado no recurso "Explorar", o Looker vai mostrar um ponto preto à esquerda dele e exibir o campo na parte de cima da lista.
Comece a digitar no editor de expressões do Looker para encurtar a lista aos itens de seu interesse.
O editor de campos personalizados mostra os campos de Explorar que estão em uso, se forem compatíveis com a função do campo personalizado.
Como adicionar um campo
Para incluir um campo do Looker na expressão, comece a digitar o nome do campo. Conforme você digita, o editor restringe sua pesquisa a uma lista de campos e funções que contêm o que você digitou. Você pode digitar o nome do campo conforme aparece na página "Explorar" ou usar o nome do LookML, se souber.
Quando você seleciona um campo da lista, o Looker o adiciona à sua expressão usando o nome do LookML no formato ${view_name.field_name}
. Isso garante que todos os campos tenham nomes exclusivos na expressão.
Como adicionar totais
Se você estiver criando uma expressão com base em uma Análise detalhada em que mostrou totais, também poderá incluir totais de colunas e linhas na expressão. Os totais das colunas aparecem no editor com a palavra Total na frente da iteração do LookML do nome do campo. Por exemplo, para um campo chamado Contagem, o Looker vai dar ao total da coluna desse campo o nome Count - Total
.
O nome do LookML para totais está no formato ${view_name.field_name:total}
, em que :total
é adicionado ao final do nome do campo.
Para totais de linha, as palavras Totais de linha aparecem na frente 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}
.
Como adicionar operadores
Se necessário, adicione operadores lógicos como AND
, OR
e NOT
à expressão. Normalmente, os operadores AND
são avaliados antes dos operadores OR
, mas você pode substituir esse comportamento usando parênteses. Também é possível usar operadores de comparação (como >
, =
e <=
) e operadores matemáticos (como +
e *
).
Quando você passa o cursor sobre um operador, notas para uso adequado aparecem no painel de informações.
Como adicionar funções
Para incluir uma função Looker na expressão, comece a digitar o nome dela. Conforme você digita, o editor restringe sua pesquisa a uma lista de campos e funções que contêm o que você digitou.
As funções podem ser construídas com argumentos (ou variáveis) que exigem um determinado tipo, como um campo, um número ou sim/não. Quando você passa o cursor sobre uma função, é possível conferir as notas que aparecem ao lado da expressão no painel de informações para entender quais argumentos você precisa fornecer e de que tipo eles precisam ser.
Consulte a lista completa de funções oferecidas pelo Looker na página de documentação Funções e operadores do Looker.
Usar dicas de erro e o painel de informações
O Looker mostra um painel de informações ao lado do editor de expressões. Esse painel oferece documentação e sugestões, especialmente se houver um erro na expressão.
O painel de informações ao lado do editor de expressões mostra as seguintes informações:
Destacamento de erros:o Looker destaca em vermelho as partes da expressão que ainda não estão corretas.
Sugestões e detalhes do erro:o Looker dá sugestões sobre o que adicionar em seguida na sua expressão. Se houver um erro, ele explica por que ele está ocorrendo. Se houver vários erros, o que será mostrado a você será baseado na localização do cursor.
Documentação:o Looker mostra a documentação sobre a função ou o operador com que você está trabalhando com base na posição do cursor. Por exemplo, enquanto você digita o primeiro argumento de uma função
if()
, o Looker fornece as informações de que o primeiro argumento precisa ser avaliado como verdadeiro ou falso. Clique no nome da função para acessar a documentação dela.
Como incluir comentários
Para incluir comentários nas expressões do Looker, inicie a linha de comentários com #
no editor de expressões.
Como usar campos
Às vezes, você vai querer usar o valor de um campo (uma dimensão, métrica ou cálculo de tabela) em uma expressão. Você pode adicionar o valor do campo a outra coisa, verificar se ele tem um determinado valor, incluí-lo em uma função ou muitas outras possibilidades.
Conforme descrito anteriormente nesta página, você pode digitar o nome do campo no editor de expressões, e o Looker vai ajudar a encontrar a maneira correta de fazer referência a ele. Quando você adiciona um campo a uma expressão, o Looker usa o identificador do LookML do campo, que tem a aparência de ${view_name.field_name}
. Digite o nome do campo conforme aparece no seletor de campos. O editor de expressões vai mostrar o nome do seletor de campos e o identificador do LookML juntos.
Há várias maneiras de recuperar um valor:
Receber um valor da mesma linha:a maneira mais básica de usar um campo é referenciá-lo diretamente. Por exemplo, sua expressão pode usar
${product.category}
. Ao fazer isso, você diz "para qualquer linha, pegue a categoria do produto dessa linha".Receber um valor de uma linha diferente:também é possível receber o valor de um campo de uma linha diferente. Por exemplo, você pode querer a lógica "para qualquer linha, extraia a categoria do produto da linha anterior". Para isso, use uma função de deslocamento (consulte esta lista de funções posicionais). A função de deslocamento pode ter esta aparência:
offset(${product.category}, -1)
.Recuperar um valor de uma coluna pivotada:também é possível recuperar valores de colunas pivotadas. Por exemplo, você pode querer a lógica "para qualquer linha, extraia o total de vendas da primeira coluna pivotada". Para trabalhar com colunas de resumo, você precisa usar funções de resumo. Consulte esta lista de funções de resumo. A função de pivot pode ter esta aparência:
pivot_index(${order.total_sales}, 1)
.Conferir o total de uma linha ou coluna:se você adicionou totais à Análise detalhada, é possível conferir os valores totais da coluna ou 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 você quiser uma porcentagem do total de uma contagem de pedidos, crie um cálculo de tabela como este:${orders.count} / ${orders.count:total}
.
Como usar operadores
As expressões do Looker podem incluir operadores lógicos, de comparação e matemáticos para criar condições diferentes:
- Operadores lógicos (como
AND
,OR
eNOT
) - Operadores de comparação (como
>
e<
) - Operadores matemáticos (como
+
e-
)
A menos que você especifique o contrário com parênteses, a lógica AND
será considerada antes da lógica OR
. A expressão a seguir 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, use yes
e no
em vez de true
e false
. Essas constantes lógicas não são iguais às palavras "yes"
e "no"
, que estão entre aspas. Consulte a descrição das constantes lógicas para mais detalhes.
Como usar funções
As expressões do Looker geralmente incluem uma ou mais funções, que ajudam a recuperar ou calcular determinados dados. Elas têm natureza semelhante às funções do Excel.
As funções têm a forma de um nome seguido de dois parênteses, como este: my_function()
. Talvez seja necessário fornecer informações entre esses parênteses, separadas por vírgulas. Esses pedaços de informação são chamados de "argumentos" e têm esta aparência: my_function(argument_1, argument_2)
.
Por exemplo, a função now
não recebe argumentos e mostra a data e a hora atuais. Use da seguinte forma: now()
.
A função round
usa um argumento, que é um número. Use da seguinte forma: round(3.2)
. O resultado é 3
.
Há duas maneiras de saber quais argumentos você precisa fornecer, se houver:
- O painel de informações que aparece ao lado do editor de expressões fornece alguma documentação sobre a função que você está escrevendo. Clique no nome da função para acessar a documentação dela.
- Também é possível navegar diretamente para a página de documentação Funções e operadores do Looker e procurar a função que você quer usar.
Considere a função contains
, que tem uma documentação parecida com esta:
Função | Sintaxe | Finalidade |
---|---|---|
contém | contains(string, search_string) |
Retorna Yes se string contém search_string e No , caso contrário. |
Você pode ver que dois argumentos são necessários. Elas têm os nomes string
e search_string
, mas isso não significa que você precisa digitar a palavra "string" e "search_string" na função. Esses são apenas os nomes dos argumentos que você vai substituir por algo. Ao ler a finalidade, vemos que string
precisa ser um campo ou outro valor que queremos pesquisar em, enquanto search_string
é o que queremos pesquisar para. Por exemplo:
contains(${customer.feedback_text}, "great")
Se a palavra "ótimo" aparecer no feedback do cliente, essa função vai gerar um resultado de Yes
. Caso contrário, o resultado será No
.
É possível colocar funções dentro de outras para lidar com lógica complexa. O resultado da função interna vai funcionar desde que seja adequado para os argumentos da função externa. Exemplo:
contains(
if(
is_null(${customer.feedback_text}),
${customer.comment_text},
${customer.feedback_text}
),
"great")
A função is_null
está aninhada em uma função if
, que está em uma função contains
. Funciona assim:
- A função
is_null()
verifica o texto do feedback do cliente. - Em seguida, a função
if()
usa esse resultado e retorna o texto do feedback do cliente, se houver, ou o texto do comentário do cliente. - Por fim, a função
contains()
usa o texto retornado pela funçãoif()
e procura a palavra "great".
Essa expressão significa logicamente: "Se houver feedback do cliente, pesquise nele. Caso contrário, pesquise nos comentários dos clientes. Em ambos os casos, procure a palavra "great".