Realizar expresiones de Looker
Las expresiones de Looker (a veces conocidas como Lexp) se usan para realizar cálculos para lo siguiente:
Una expresión de Looker se crea a partir de una combinación de estos elementos:
NULL: El valor
NULL
indica que no hay datos y puede ser útil cuando deseas verificar que algo esté vacío o no exista.Una constante: Una constante es un valor invariable que proporcionas. Un número, como
7
, o una cadena, comoCompleted
, son constantes.Un campo de Looker: Es una referencia a un campo de Looker, que incluye dimensiones, mediciones y cálculos basados en tablas.
Un operador de Looker: Existen varios tipos de operadores (que se enumeran en la página de documentación de Funciones y operadores de Looker):
- Operadores matemáticos (como
+
,-
,*
y/
) - Operadores de comparación (como
=
,>
y<=
) - Operadores lógicos (como
AND
,OR
yNOT
)
- Operadores matemáticos (como
Una función de Looker: Son similares a las funciones de Excel. Las funciones te permiten transformar tus datos o hacer referencia a ellos de formas complejas. Todas las funciones disponibles se enumeran en la página de documentación Funciones y operadores de Looker.
Cómo crear expresiones de Looker
Los cálculos basados en tablas, los campos personalizados y los filtros personalizados usan el editor de expresiones de Looker. A medida que escribes tu expresión, Looker te sugiere funciones, operadores y nombres de campos que podrías usar.
Cómo ver todas las sugerencias
Para acceder al editor de expresiones de Looker en Explorar, crea un cálculo de tabla, un campo personalizado o un filtro personalizado.
Escribe un espacio para ver una lista de todos los campos, las funciones y los operadores que puedes elegir. Si un campo está seleccionado actualmente en Explorar, Looker muestra un punto negro a la izquierda del campo y lo muestra en la parte superior de la lista.
Comienza a escribir en el editor de expresiones de Looker para acortar la lista y mostrar solo los elementos que te interesan.
El editor de campos personalizados muestra los campos de Explorar que se usan actualmente, si son compatibles con la función del campo personalizado.
Cómo agregar un campo
Para incluir un campo de Looker en tu expresión, comienza a escribir el nombre del campo. A medida que escribes, el editor reduce tu búsqueda a una lista de campos y funciones que contienen lo que escribiste. Puedes escribir el nombre del campo tal como aparece en la página Explorar o usar su nombre de LookML si lo conoces.
Cuando seleccionas un campo de la lista, Looker lo agrega a tu expresión con el nombre de LookML en el formato ${view_name.field_name}
. Esto garantiza que todos tus campos tengan nombres únicos en la expresión.
Cómo agregar totales
Si creas una expresión basada en una exploración en la que mostraste totales, también puedes incluir totales de columnas y filas en tu expresión. Los totales de las columnas aparecen en el editor con la palabra Total delante de la iteración de LookML del nombre del campo. Por ejemplo, para un campo llamado Recuento, Looker le asignará el nombre Count - Total
al total de la columna de ese campo.
El nombre de LookML para los totales tiene el formato ${view_name.field_name:total}
, en el que :total
se agrega al final del nombre del campo.
En el caso de los totales de filas, las palabras Totales de filas aparecen delante del nombre del campo en el editor y, en el nombre de LookML del campo, se agrega :row_total
al final del nombre del campo, como ${view_name.field_name:row_total}
.
Cómo agregar operadores
Si es necesario, puedes agregar operadores lógicos, como AND
, OR
y NOT
, a tu expresión. Por lo general, los operadores AND
se evalúan antes que los operadores OR
, pero puedes anular este comportamiento con paréntesis. También puedes usar operadores de comparación (como >
, =
y <=
) y operadores matemáticos (como +
y *
).
Cuando colocas el cursor sobre un operador, aparecen notas para su uso adecuado en el panel de información.
Cómo agregar funciones
Para incluir una función de Looker en tu expresión, comienza a escribir el nombre de la función. A medida que escribes, el editor reduce tu búsqueda a una lista de campos y funciones que contienen lo que escribiste.
Las funciones pueden estar compuestas por argumentos (o variables) que requieren un tipo determinado, como un campo, un número o sí/no. Cuando colocas el cursor sobre una función, puedes consultar las notas que se muestran junto a tu expresión en el panel de información para comprender qué argumentos debes proporcionar y de qué tipo deben ser.
Puedes consultar la lista completa de funciones que ofrece Looker en la página de documentación Funciones y operadores de Looker.
Cómo usar las sugerencias de error y el panel de información
Looker muestra un panel de información junto al editor de expresiones de Looker. En este panel, se proporcionan documentación y sugerencias, en especial si tienes un error en tu expresión.
El panel de información que se encuentra junto al editor de expresiones proporciona la siguiente información:
Destacado de errores: Looker subraya en rojo cualquier parte de la expresión que aún no sea correcta.
Sugerencias y detalles del error: Looker te brinda sugerencias sobre qué agregar a continuación en tu expresión. Si hay un error, se explica por qué se produce. Si hay varios errores, el que se te muestra se basa en la ubicación del cursor.
Documentación: Looker muestra documentación sobre la función o el operador con el que estás trabajando, según la posición del cursor. Por ejemplo, mientras escribes el primer argumento de una función
if()
, Looker proporciona la información de que el primer argumento debe evaluarse como verdadero o falso. Puedes hacer clic en el nombre de la función para navegar a su documentación.
Cómo incluir comentarios
Puedes incluir comentarios en las expresiones de Looker comenzando la línea de comentario con #
en el editor de expresiones.
Uso de campos
A veces, querrás usar el valor de un campo (una dimensión, una métrica o un cálculo de tabla) en una expresión. Es posible que desees agregar el valor del campo a otra cosa, verificar que tenga un valor determinado, incluirlo en una función o muchas otras posibilidades.
Como se describió anteriormente en esta página, puedes escribir el nombre del campo en el editor de expresiones, y Looker te ayudará a encontrar la forma correcta de hacer referencia al campo. Cuando agregas un campo a una expresión, Looker usa el identificador LookML del campo, que se ve como ${view_name.field_name}
. Escribe el nombre del campo tal como aparece en el selector de campos, y el editor de expresiones te mostrará el nombre del selector de campos y el identificador de LookML juntos.
Existen varias formas de recuperar un valor:
Obtén un valor de la misma fila: La forma más básica de usar un campo es hacer referencia a él directamente. Por ejemplo, tu expresión podría usar
${product.category}
. Cuando haces esto, dices "para cualquier fila determinada, toma la categoría de producto de esa fila".Obtener un valor de otra fila: También puedes obtener el valor de un campo de otra fila. Por ejemplo, es posible que desees la lógica "para cualquier fila determinada, toma la categoría del producto de la fila anterior". Para ello, puedes usar una función de desplazamiento (consulta esta lista de funciones posicionales). La función de desplazamiento podría verse así:
offset(${product.category}, -1)
.Obtener un valor de una columna dinámica: También puedes obtener valores de columnas dinámicas. Por ejemplo, es posible que desees la lógica "para cualquier fila determinada, toma las ventas totales de la primera columna dinámica". Para trabajar con columnas dinámicas, deberás usar funciones de dinamización (consulta esta lista de funciones de dinamización). La función de pivote podría verse así:
pivot_index(${order.total_sales}, 1)
.Obtén un total de una fila o columna: Si agregaste totales a tu Explorar, puedes obtener los valores totales de la columna o fila agregando
:total
(para los totales de columnas) o:row_total
(para los totales de filas) al nombre del campo, con el formato${field_name:total}
. Por ejemplo, si deseas obtener un porcentaje del total de un recuento de Pedidos, puedes crear un cálculo de tabla como este:${orders.count} / ${orders.count:total}
.
Uso de operadores
Las expresiones de Looker pueden incluir operadores lógicos, de comparación y matemáticos para crear diferentes condiciones:
- Operadores lógicos (como
AND
,OR
yNOT
) - Operadores de comparación (como
>
y<
) - Operadores matemáticos (como
+
y-
)
A menos que especifiques lo contrario con paréntesis, la lógica AND
se considera antes que la lógica OR
. La siguiente expresión sin paréntesis adicionales:
if (
${order_items.days_to_process}>=4 OR
${order_items.shipping_time}>5 AND
${order_facts.is_first_purchase},
"review", "okay")
se evalúa de la siguiente manera:
if (
${order_items.days_to_process}>=4 OR
(${order_items.shipping_time}>5 AND ${order_facts.is_first_purchase}),
"review", "okay")
En Looker, debes usar yes
y no
en lugar de true
y false
. Estas constantes lógicas no son lo mismo que las palabras "yes"
y "no"
, que se encuentran entre comillas. Consulta la descripción de las constantes lógicas para obtener más detalles.
Uso de funciones
Las expresiones de Looker suelen incluir una o más funciones, que te ayudan a recuperar ciertos datos o calcular ciertas cosas. Son similares en naturaleza a las funciones de Excel.
Las funciones tienen la forma de un nombre seguido de dos paréntesis, como este: my_function()
. Es posible que debas proporcionar información dentro de esos paréntesis, separada por comas. Estos fragmentos de información se denominan "argumentos" y se ven de la siguiente manera: my_function(argument_1, argument_2)
.
Por ejemplo, la función now
no toma ningún argumento y te proporciona la fecha y hora actuales. Se usa de la siguiente manera: now()
.
La función round
sí toma un argumento, que es un número. Se usa de la siguiente manera: round(3.2)
. El resultado es 3
.
Existen dos formas de saber qué argumentos deberás proporcionar, si es que hay alguno:
- El panel de información que aparece junto al editor de expresiones proporciona documentación sobre la función que estás escribiendo. Puedes hacer clic en el nombre de la función para navegar a su documentación.
- También puedes navegar directamente a la página de documentación de Funciones y operadores de Looker y buscar la función que deseas usar.
Considera la función contains
, que tiene documentación como la siguiente:
Función | Sintaxis | Objetivo |
---|---|---|
contiene | contains(string, search_string) |
Muestra Yes si string contiene search_string y No en caso contrario. |
Puedes ver que se requieren dos argumentos. Tienen los nombres string
y search_string
, pero eso no significa que debas escribir la palabra exacta "string" y "search_string" en la función. Estos son solo nombres para los argumentos que reemplazarás por algo. Al leer el propósito, vemos que string
debe ser un campo o algún otro valor que queramos buscar en, mientras que search_string
es lo que queremos buscar por. Un ejemplo podría ser el siguiente:
contains(${customer.feedback_text}, "great")
Si la palabra "excelente" aparece en los comentarios del cliente, esta función arroja un resultado de Yes
. De lo contrario, el resultado es No
.
Puedes colocar funciones dentro de otras funciones para controlar la lógica compleja. Siempre que el resultado de la función interna sea adecuado para los argumentos de la función externa, funcionará. Por ejemplo:
contains(
if(
is_null(${customer.feedback_text}),
${customer.comment_text},
${customer.feedback_text}
),
"great")
La función is_null
está anidada dentro de una función if
, que a su vez está dentro de una función contains
. Funciona de la siguiente manera:
- La función
is_null()
verifica si hay texto de comentarios de los clientes. - A continuación, la función
if()
usa ese resultado y muestra el texto de los comentarios del cliente, si los hay, o el texto de los comentarios del cliente. - Por último, la función
contains()
usa el texto que devolvió la funciónif()
y busca la palabra "great".
Lógicamente, esta expresión significa: "Si hay comentarios de los clientes, busca en ellos. Si no es así, busca en los comentarios de los clientes. En ambos casos, busca la palabra "great".