Crear expresiones de Looker

Expresiones de Looker

Las expresiones de Looker (a veces denominadas Lexp) se usan para hacer cálculos en los siguientes casos:

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 quieras comprobar que algo está vacío o no existe.

  • Una constante: es un valor invariable que usted proporciona. Un número como 7 o una cadena como Completed son constantes.

  • Un campo de Looker: una referencia a un campo de Looker, que incluye dimensiones, medidas y cálculos de tablas.

  • Un operador de Looker: hay varios tipos de operadores (que se enumeran en la página de documentación Funciones y operadores de Looker):

    • Operadores matemáticos (como +, -, * y /)
    • Operadores de comparación (como =, > y <=)
    • Operadores lógicos (como AND, OR y NOT)
  • 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.

Crear expresiones de Looker

Las operaciones entre tablas, los campos personalizados y los filtros personalizados usan el editor de expresiones de Looker. Mientras escribes la expresión, Looker te sugiere funciones, operadores y nombres de campos que puedes usar.

Ver todas las sugerencias

Accede al editor de expresiones de Looker en un Exploración creando un cálculo de tabla, un campo personalizado o un filtro personalizado.

Escribe un espacio para ver una lista de todos los campos, funciones y operadores que puedes elegir. Si un campo está seleccionado en Explorar, Looker muestra un punto negro a la izquierda del campo y lo muestra en la parte superior de la lista.

Empieza a escribir en el editor de expresiones de Looker para acotar la lista a los elementos que te interesan.

En el editor de campos personalizados se muestran los campos de Exploración que se están usando, si son compatibles con la función del campo personalizado.

Añadir un campo

Para incluir un campo de Looker en tu expresión, empieza a escribir el nombre del campo. Mientras escribes, el editor acota la búsqueda a una lista de campos y funciones que contienen lo que has escrito. Puede escribir el nombre del campo tal como aparece en la página Explorar o usar su nombre de LookML si lo conoce.

Cuando seleccionas un campo de la lista, Looker lo añade a la expresión con el nombre de LookML en el formato ${view_name.field_name}. De esta forma, todos los campos tendrán nombres únicos en la expresión.

Añadir totales

Si crea una expresión basada en una exploración en la que se muestran totales, también puede incluir totales de columnas y filas en la 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, en el caso de un campo llamado Recuento, Looker asignará el nombre Count - Total al total de la columna de ese campo.

El nombre de LookML de los totales tiene el formato ${view_name.field_name:total}, donde :total se añade al final del nombre del campo.

En el caso de los totales de las filas, las palabras Totales de las filas aparecen delante del nombre del campo en el editor. En el nombre de LookML del campo, se añade :row_total al final del nombre del campo, como ${view_name.field_name:row_total}.

Añadir operadores

Si es necesario, puede añadir operadores lógicos como AND, OR y NOT a su expresión. Normalmente, los operadores AND se evalúan antes que los operadores OR, pero puedes anular este comportamiento usando paréntesis. También puedes usar operadores de comparación (como >, = y <=) y operadores matemáticos (como + y *).

Cuando coloca el cursor sobre un operador, las notas para usarlo correctamente se muestran en el panel de información.

Añadir funciones

Para incluir una función de Looker en tu expresión, empieza a escribir el nombre de la función. Mientras escribes, el editor acota la búsqueda a una lista de campos y funciones que contienen lo que has escrito.

Las funciones pueden estar formadas por argumentos (o variables) que requieren un tipo concreto, como un campo, un número o un valor de sí/no. Cuando colocas el cursor sobre una función, puedes consultar las notas que se muestran junto a la expresión en el panel de información para saber 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.

Usar sugerencias de errores y el panel de información

Looker muestra un panel de información junto al editor de expresiones de Looker. Este panel proporciona documentación y sugerencias, sobre todo si hay un error en la expresión.

En el panel de información situado junto al editor de expresiones se proporciona la siguiente información:

  • Resaltado de errores: Looker subraya en rojo las partes de la expresión que aún no son correctas.

  • Sugerencias y detalles del error: Looker te ofrece sugerencias sobre qué añadir a continuación en tu expresión. Si se produce un error, se explica por qué. 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, en función de la posición del cursor. Por ejemplo, mientras escribes el primer argumento de una función if(), Looker te indica que el primer argumento debe dar como resultado verdadero o falso. Puede hacer clic en el nombre de la función para ir a la documentación correspondiente.

Incluyendo comentarios

Puedes incluir comentarios en las expresiones de Looker empezando la línea del comentario con # en el editor de expresiones.

Usar campos

A veces, querrá usar el valor de un campo (una dimensión, una medida o un cálculo de tabla) en una expresión. Puede que quieras añadir el valor del campo a otro elemento, comprobar que tiene un valor determinado o incluirlo en una función, entre otras muchas posibilidades.

Como se ha descrito 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 añades un campo a una expresión, Looker usa el identificador LookML del campo, que tiene un aspecto similar a ${view_name.field_name}. Escribe el nombre del campo tal como aparece en el selector de campos. El editor de expresiones te mostrará el nombre del selector de campos y el identificador de LookML juntos.

Hay varias formas de recuperar un valor:

  • Obtener 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 puede usar ${product.category}. Al hacerlo, le estás diciendo que, en cada fila, tome la categoría de producto de esa fila.

  • Obtener un valor de otra fila: también puede obtener el valor de un campo de otra fila. Por ejemplo, puede que quieras aplicar la lógica "en cada fila, obtener la categoría de producto de la fila anterior". Para ello, puedes usar una función de desplazamiento (consulta esta lista de funciones de posición). La función de desplazamiento podría ser similar a esta: offset(${product.category}, -1).

  • Obtener un valor de una columna dinamizada: también puedes obtener valores de columnas dinamizadas. Por ejemplo, puede que quieras que la lógica sea "en cada fila, obtener las ventas totales de la primera columna dinamizada". Para trabajar con columnas dinamizadas, debe usar funciones de dinamización (consulte esta lista de funciones de dinamización). La función de pivote podría ser similar a esta: pivot_index(${order.total_sales}, 1).

  • Obtener el total de una fila o una columna: si has añadido totales a tu Exploración, puedes obtener los valores totales de la columna o la fila añadiendo :total (para los totales de las columnas) o :row_total (para los totales de las filas) al nombre del campo, con el formato ${field_name:total}. Por ejemplo, si quiere obtener un porcentaje del total de un recuento de Pedidos, puede crear un cálculo de tabla como este: ${orders.count} / ${orders.count:total}.

Usar 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 y NOT)
  • 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 tiene en cuenta 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 están entre comillas. Consulta la descripción de las constantes lógicas para obtener más información.

Usar funciones

Las expresiones de Looker suelen incluir una o varias funciones, que te ayudan a obtener determinados datos o a calcular ciertos elementos. Son similares 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 tengas que proporcionar información entre paréntesis, separada por comas. Estos fragmentos de información se denominan "argumentos" y tienen este aspecto: my_function(argument_1, argument_2).

Por ejemplo, la función now no admite ningún argumento y te indica la fecha y la hora actuales. Se usa de la siguiente manera: now().

La función round no usa ningún argumento. Se usa de la siguiente manera: round(3.2). El resultado es 3.

Hay dos formas de saber qué argumentos debes proporcionar, si es necesario:

  • 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 ir a su documentación.
  • También puedes ir directamente a la página de documentación Funciones y operadores de Looker y buscar la función que quieras usar.

Considera la función contains, cuya documentación tiene este aspecto:

Función Sintaxis Finalidad
contiene contains(string, search_string) Devuelve Yes si string contiene search_string y No en caso contrario.

Puedes ver que se necesitan dos argumentos. Tienen los nombres string y search_string, pero eso no significa que tengas que escribir las palabras exactas "string" y "search_string" en la función. Estos son solo los nombres de los argumentos que sustituirás por algo. Al leer el propósito, vemos que string debe ser un campo u otro valor que queramos buscar en, mientras que search_string es lo que queremos buscar por. Por ejemplo:

contains(${customer.feedback_text}, "great")

Si la palabra "genial" aparece en los comentarios del cliente, esta función devuelve el resultado Yes. De lo contrario, se obtiene el resultado No.

Puedes poner funciones dentro de otras funciones para gestionar una 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:

  1. La función is_null() comprueba si hay texto de comentarios de clientes.
  2. A continuación, la función if() usa ese resultado y devuelve el texto de los comentarios del cliente (si los hay) o el texto del comentario del cliente.
  3. Por último, la función contains() usa el texto devuelto por la función if() y busca la palabra "genial".

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".