Campos calculados

Los campos calculados de tarjeta permiten obtener resultados al combinar uno o varios campos resultado de las consultas realizadas.

Sintaxis de los campos de datos

Cuando se configura una consulta de datos en una tarjeta en Biuwer, los campos tienen un conjunto de atributos que determinan su comportamiento. Además, por la versatilidad del sistema al permitir múltiples consultas y relaciones entre ellas, es importante conocer cómo funciona la identificación de los campos y el comportamiento que van a tener.

En la siguiente captura se puede ver un ejemplo de listado de campos disponibles para el montaje de una visualización.

Cada campo incluye la siguiente información:

  • Tipo de campo: dimensión si el color es verde o métrica si el color es azul

  • Tipo de dato: indicado por el icono inicial. ABC para campos de texto, 123 para campos numéricos, el icono de un calendario para campos de fecha o el icono de -/+ para campos booleanos.

  • Número de consulta y número de campo: indicado como por ejemplo Q1.1, para el campo en primera posición de la primera consulta. Por ejemplo, el campo identificado como Q2.3 es el campo en tercera posición de la segunda consulta. Si se cambia el orden de los campos dentro de una consulta, Biuwer actualiza todos los campos involucrados, incluyendo expresiones en campos calculados automáticamente por tí.

  • Alias del campo: es el alias del campo, que actúa como nombre en la tarjeta. Si te sitúas encima con el ratón se muestra el detalle del conjunto de datos y el campo origen.

  • Función de agregación: es la función de agregación configurada para campos de tipo métrica. Los valores disponibles son: Ninguna, Sum, Avg, Count, Count distinct, Max y Min.

A la hora de comprender y manejar correctamente la sintaxis a incluir en los campos calculados, se debe tener en cuenta que un campo de datos se va a especificar entre llaves { }, donde obligatoriamente debe aparecer el número de consulta y el número de campo, y opcionalmente puede aparecer el nombre del campo. Si lo prefieres, por simplicidad, puedes quitar el nombre del campo, aunque también ayuda a identificar de cuál se trata.

Por ejemplo, un campo calculado titulado “Yearly change %” que devuelve un número y se va a comportar como una métrica en la visualización puede tener la siguiente expresión:

{Q1.4 Yearly change} / 100

Lo que hace esta expresión es tomar el valor del campo nº 4 de la consulta nº 1, llamado “Yearly change” y va a dividirlo entre 100, para cada uno de sus valores. Como se puede ver en la imagen anterior, existe una función numérica DIV que permite obtener el mismo resultado, aunque de forma distinta. Si se usara DIV la expresión sería: DIV({Q1.4 Yearly change}, 100)

Para operar con los campos calculados creados en una tarjeta, la sintaxis es específica con el prefijo CF (Calculated Field). Por ejemplo, {CF.1 Nombre del campo calculado} incluiría el primer campo calculado. Como hemos comentado anteriormente, la opción simplificada de esta expresión es {CF.1}.

A la hora de componer un campo calculado, en el diálogo de edición de campos calculados, se muestra un listado de campos disponibles, donde cada uno ya se muestra con la sintaxis adecuada, y si haces doble clic sobre uno de ellos, se añade el campo a la expresión.

Operaciones aritméticas

Los campos calculados básicos se pueden componer usando los operadores aritméticos básicos, como la suma (+), la resta (-), la multiplicación (*) o la división (/), entre uno o varios campos.

A continuación incluimos algunos ejemplos:

  • Cálculo de importe con IVA: campo_metrica * 1,21

  • Diferencia entre dos campos: campo_metrica1 - campo_metrica2

  • Aplicación de un margen fijo sobre un importe: campo_metrica + 100

  • Cálculo de un ratio entre 2 campos: campo_metrica1 / campo_metrica2

Ten en cuenta que al incluir un campo en la expresión de un campo calculado, éste debe incluirse entre llaves { }. Siguiendo los ejemplos anteriores, sería {campo_metrica} * 1,21

Comparativas con periodos anteriores

A menudo es interesante poder disponer de una comparativa para una métrica respecto a periodos pasados. Por ejemplo, si estamos visualizando el importe de la venta mensualmente, y el negocio tiene fuerte dependencia del calendario, puede interesarnos comparar con los importes de la venta producidos el año anterior.

Biuwer incluye un conjunto de funciones para comparar una métrica con periodos anteriores, que puedes utilizar al componer campos calculados de tarjeta:

  • PREV_YEAR: compara la métrica especificada con el año anterior.

  • PREV_QUARTER: compara la métrica especificada con el trimestre anterior.

  • PREV_MONTH: compara la métrica especificada con el mes anterior.

  • PREV_WEEK: compara la métrica especificada con la semana anterior.

  • PREV_DAY: compara la métrica especificada con el día anterior.

  • PREV_PERIOD: compara la métrica especificada para el valor previo del periodo aplicado al campo fecha utilizado para especificar el intervalo de tiempo (filtro de fecha aplicado). Esta opción es dinámica y más flexible que las funciones PREV_YEAR, PREV_QUARTER, PREV_MONTH, PREV_WEEK, PREV_DAY, pues éstas siempre comparan con un intervalo concreto de tiempo, mientras que PREV_PERIOD toma el nivel de fecha del filtro aplicado (AÑO, TRIMESTRE, MES, SEMANA, DÍA) y calcula de forma dinámica el valor de la métrica en el valor de fecha previo.

Todas estas funciones se invocan de la misma forma, y siempre teniendo en cuenta un campo de fecha como referencia para hacer la comparativa.

La sintaxis es la siguiente, utilizando un campo de métrica y un campo de fecha como referencia temporal. Recuerda que al incluir los campos deben incluirse entre llaves { }. Usamos PREV_YEAR como ejemplo:

Sintaxis general:

PREV_YEAR(campo_metrica, campo_fecha)

Un ejemplo real:

PREV_YEAR({Q1.1 importe_total}, {Q1.2 fecha_emision})

Las comparativas con periodos anteriores son muy útiles si se configuran correctamente con los niveles de fecha adecuados, pero pueden no ser de utilidad en otros casos.

Por ejemplo, si configuramos un gráfico con nivel de fecha AÑO y configuramos una comparativa de tiempo respecto al DÍA anterior, no va a tener mucho sentido el resultado obtenido.

Funciones numéricas

Las funciones específicas para operar con campos y valores numéricos son las siguientes:

  • ABS: valor absoluto de un número. Por ejemplo, ABS(-2.55) = 2.55

  • CEILING: redondea un número al entero más cercano de igual o mayor valor. Por ejemplo, CEILING(2.5541) = 3

  • DIV: resultado de dividir un número, campo o expresión (numerador) entre otro número, campo o expresión (denominador). Por ejemplo, DIV(4, 2.3) = 1.7391

  • EXP: devuelve el número "e" elevado a la potencia del número dado. Por ejemplo, EXP(2) = 7.389

  • FLOOR: redondea un número al entero más cercano de igual o menor valor. Por ejemplo, FLOOR(2.5541) = 2

  • LN: devuelve el logaritmo natural o neperiano de un número (null si el número es menor o igual a 0). Por ejemplo, LN(11.256) = 2.4209

  • LOG: devuelve el logaritmo de un número para la base dada. Habitualmente se utiliza la base 10 (logaritmo decimal) y por eso si se omite el valor base, se utiliza la base 10. Por ejemplo, LOG(11.256, 10) = 4.0514

  • MAX_VALUE: devuelve el máximo de los, al menos, dos argumentos indicados, que deben ser del mismo tipo, incluyendo campos numéricos, otros campos y otros campos calculados. La sintaxis para usar esta función es MAX_VALUE(expression, expression). Por ejemplo, MAX_VALUE(100000, {Q1.3 Population}) devolverá línea a línea, el valor más grande entre 100000 y el valor que tome el campo Population.

  • MIN_VALUE: devuelve el mínimo de los, al menos, dos argumentos, que deben ser del mismo tipo, incluyendo campos numéricos, otros campos y otros campos calculados. La sintaxis para usar esta función es MIN_VALUE(expression, expression). Por ejemplo, MIN_VALUE(100000, {Q1.3 Population}) devolverá línea a línea, el valor más pequeño entre 100000 y el valor que tome el campo Population.

  • MOD: módulo o resto de una división (útil para saber por ejemplo si un número es par o impar). Por ejemplo, MOD(5, 2) = 1

  • POWER: eleva un número a la potencia especificada. Por ejemplo, POWER(3, 2) = 9

  • ROUND: redondea un número usando un número específico de dígitos. Si no se especifican los decimales, el número se redondea al entero más cercano. Por ejemplo, ROUND(11.256, 1) = 11.3

  • SIGN: devuelve el signo de un número (-1 si es negativo, 0 si es cero o 1 si es positivo). Por ejemplo, SIGN(11.256) = 1

  • SQRT: devuelve la raíz cuadrada de un número. Por ejemplo, SQRT(25) = 5

  • SQUARE: devuelve el cuadrado de un número. Por ejemplo, SQUARE(5) = 25

Funciones de agregación

Las operaciones que implican cualquier agregación numérica permiten obtener valores totalizados a partir de un conjunto de valores originales. Las funciones de agregación permiten aplicar cálculos diversos, como los descritos a continuación:

  • AVG: obtiene el valor promedio, la media, del campo de tipo métrica indicado. Esta función de agregación tiene en cuenta otros campos de tipo dimensión involucrados para incluir los valores que apliquen en cada caso en el cálculo. La sintaxis para usar esta función es AVG(metric_field). Por ejemplo, AVG({Q1.4 Number of clicks})

  • COUNT: obtiene la cuenta de los valores que tiene el campo de tipo métrica indicado, sin tener en cuenta si se repiten o no. Esta función de agregación tiene en cuenta otros campos de tipo dimensión involucrados para incluir los valores que apliquen en cada caso en el cálculo. La sintaxis para usar esta función es COUNT(metric_field). Por ejemplo, COUNT({Q1.4 Number of clicks})

  • COUNT_DISTINCT: obtiene la cuenta de los valores que tiene el campo de tipo métrica indicado, teniendo en cuenta sólamente los valores distintos. Es decir, si un valor se repite, contará como un único valor en la cuenta devuelta. Esta función de agregación tiene en cuenta otros campos de tipo dimensión involucrados para incluir los valores que apliquen en cada caso en el cálculo. La sintaxis para usar esta función es COUNT_DISTINCT(metric_field). Por ejemplo, COUNT_DISTINCT({Q1.4 Number of clicks})

  • DIFF_FROM_FIRST: obtiene la diferencia entre el primer valor y el actual de una métrica. Tiene utilidad cuando la serie de datos está ordenada con un criterio concreto y se quiere saber para cada valor, su diferencia respecto al primer valor de la serie numérica. La sintaxis para usar esta función es DIFF_FROM_FIRST(metric_field). Por ejemplo, DIFF_FROM_FIRST({Q1.4 Number of clicks})

  • DIFF_FROM_LAST: obtiene la diferencia entre el valor actual y el último de una métrica. Tiene utilidad cuando la serie de datos está ordenada con un criterio concreto y se quiere saber para cada valor, su diferencia respecto al último valor de la serie numérica. La sintaxis para usar esta función es DIFF_FROM_LAST(metric_field). Por ejemplo, DIFF_FROM_LAST({Q1.4 Number of clicks})

  • DIFF_FROM_NEXT: obtiene la diferencia entre el valor actual y el siguiente de una métrica. Tiene utilidad cuando la serie de datos está ordenada con un criterio concreto y se quiere saber para cada valor, su diferencia respecto al siguiente valor de la serie numérica. La sintaxis para usar esta función es DIFF_FROM_NEXT(metric_field). Por ejemplo, DIFF_FROM_NEXT({Q1.4 Number of clicks})

  • DIFF_FROM_PREV: obtiene la diferencia entre el valor anterior y el actual de una métrica. Tiene utilidad cuando la serie de datos está ordenada con un criterio concreto y se quiere saber para cada valor, su diferencia respecto al siguiente valor de la serie numérica. La sintaxis para usar esta función es DIFF_FROM_PREV(metric_field). Por ejemplo, DIFF_FROM_NEXT({Q1.4 Number of clicks})

  • MAX: obtiene el valor máximo de los valores que toma el campo de tipo métrica indicado. Esta función de agregación tiene en cuenta otros campos de tipo dimensión involucrados para incluir los valores que apliquen en cada caso en el cálculo. La sintaxis para usar esta función es MAX(metric_field). Por ejemplo, MAX({Q1.4 Number of clicks})

  • MIN: obtiene el valor mínimo de los valores que toma el campo de tipo métrica indicado. Esta función de agregación tiene en cuenta otros campos de tipo dimensión involucrados para incluir los valores que apliquen en cada caso en el cálculo. La sintaxis para usar esta función es MIN(metric_field). Por ejemplo, MIN({Q1.4 Number of clicks})

  • MOVING_AVG: obtiene la media móvil del intervalo especificado para la métrica. La sintaxis para usar esta función es MOVING_AVG(metric field, previous range, next range), donde se indica una métrica, el número de registros previo al actual, y el número de registros desde el actual, para calcular la ventana de cálculo. Por ejemplo, MOVING_AVG({Q1.4 Number of clicks}, 5, 0)

  • MOVING_MAX: obtiene el valor máximo que hay en el intervalo especificado para la métrica. La sintaxis para usar esta función es MOVING_MAX(metric field, previous range, next range), donde se indica una métrica, el número de registros previo al actual, y el número de registros desde el actual, para calcular la ventana de cálculo. Por ejemplo, MOVING_MAX({Q1.4 Number of clicks}, 5, 0)

  • MOVING_MIN: obtiene el valor mínimo que hay en el intervalo especificado para la métrica. La sintaxis para usar esta función es MOVING_MIN(metric field, previous range, next range), donde se indica una métrica, el número de registros previo al actual, y el número de registros desde el actual, para calcular la ventana de cálculo. Por ejemplo, MOVING_MIN({Q1.4 Number of clicks}, 5, 0)

  • MOVING_SUM: obtiene la suma de los valores que hay en el intervalo especificado para la métrica. La sintaxis para usar esta función es MOVING_SUM(metric field, previous range, next range), donde se indica una métrica, el número de registros previo al actual, y el número de registros desde el actual, para calcular la ventana de cálculo. Por ejemplo, MOVING_SUM({Q1.4 Number of clicks}, 5, 0)

  • PCT_DIFF_FROM_FIRST: obtiene la diferencia porcentual entre el primer valor y el actual de una métrica. Se comporta como la función DIFF_FROM_FIRST pero devolviendo un porcentaje. La sintaxis para usar esta función es PCT_DIFF_FROM_FIRST(metric_field). Por ejemplo, PCT_DIFF_FROM_FIRST({Q1.4 Number of clicks})

  • PCT_DIFF_FROM_LAST: obtiene la diferencia porcentual entre el valor actual y el último de una métrica. Se comporta como la función DIFF_FROM_LAST pero devolviendo un porcentaje. La sintaxis para usar esta función es PCT_DIFF_FROM_LAST(metric_field). Por ejemplo, PCT_DIFF_FROM_LAST({Q1.4 Number of clicks})

  • PCT_DIFF_FROM_NEXT: obtiene la diferencia porcentual entre el valor actual y el siguiente de una métrica. Se comporta como la función DIFF_FROM_NEXT pero devolviendo un porcentaje. La sintaxis para usar esta función es PCT_DIFF_FROM_NEXT(metric_field). Por ejemplo, PCT_DIFF_FROM_NEXT({Q1.4 Number of clicks})

  • PCT_DIFF_FROM_PREV: obtiene la diferencia porcentual entre el valor anterior y el actual de una métrica. Se comporta como la función DIFF_FROM_PREV pero devolviendo un porcentaje. La sintaxis para usar esta función es PCT_DIFF_FROM_PREV(metric_field). Por ejemplo, PCT_DIFF_FROM_PREV({Q1.4 Number of clicks})

  • PCT_FROM_FIRST: obtiene el porcentaje del primer valor y el actual de una métrica. Se comporta como la función DIFF_FROM_FIRST pero devolviendo un porcentaje. La sintaxis para usar esta función es PCT_FROM_FIRST(metric_field). Por ejemplo, PCT_FROM_FIRST({Q1.4 Number of clicks})

  • PCT_FROM_LAST: obtiene el porcentaje del valor actual y el último de una métrica. Se comporta como la función DIFF_FROM_LAST pero devolviendo un porcentaje. La sintaxis para usar esta función es PCT_FROM_LAST(metric_field). Por ejemplo, PCT_FROM_LAST({Q1.4 Number of clicks})

  • PCT_FROM_NEXT: obtiene el porcentaje del valor actual y el siguiente de una métrica. Se comporta como la función DIFF_FROM_NEXT pero devolviendo un porcentaje. La sintaxis para usar esta función es PCT_FROM_NEXT(metric_field). Por ejemplo, PCT_FROM_NEXT({Q1.4 Number of clicks})

  • PCT_FROM_PREV: obtiene el porcentaje del valor anterior y el actual de una métrica. Se comporta como la función DIFF_FROM_PREV pero devolviendo un porcentaje. La sintaxis para usar esta función es PCT_FROM_PREV(metric_field). Por ejemplo, PCT_FROM_PREV({Q1.4 Number of clicks})

  • PCT_OVER_TOTAL: obtiene el porcentaje de cada valor de una métrica respecto al total de dicha métrica. La sintaxis para usar esta función es PCT_OVER_TOTAL(metric_field). Por ejemplo, PCT_OVER_TOTAL({Q1.4 Number of clicks})

  • RUNNING_AVG: obtiene la media acumulada de una métrica. La sintaxis para usar esta función es RUNNING_AVG(metric_field). Por ejemplo, RUNNING_AVG({Q1.4 Number of clicks})

  • RUNNING_COUNT: obtiene la cuenta acumulada de una métrica. La sintaxis para usar esta función es RUNNING_COUNT(metric_field). Por ejemplo, RUNNING_COUNT({Q1.4 Number of clicks})

  • RUNNING_MAX: obtiene el máximo acumulado de una métrica. La sintaxis para usar esta función es RUNNING_MAX(metric_field). Por ejemplo, RUNNING_MAX({Q1.4 Number of clicks})

  • RUNNING_MIN: obtiene el mínimo acumulado de una métrica. La sintaxis para usar esta función es RUNNING_MIN(metric_field). Por ejemplo, RUNNING_MIN({Q1.4 Number of clicks})

  • RUNNING_SUM: obtiene la suma acumulada de una métrica. La sintaxis para usar esta función es RUNNING_SUM(metric_field). Por ejemplo, RUNNING_SUM({Q1.4 Number of clicks})

  • SUM: obtiene la suma de valores del campo de tipo métrica indicado. Esta función de agregación tiene en cuenta otros campos de tipo dimensión involucrados para incluir los valores que apliquen en cada caso en el cálculo. La sintaxis para usar esta función es SUM(metric_field). Por ejemplo, SUM({Q1.4 Number of clicks})

  • TOTAL_SUM: obtiene la suma de todos los valores del campo de tipo métrica indicado. La sintaxis para usar esta función es TOTAL_SUM(metric_field). Por ejemplo, TOTAL_SUM({Q1.4 Number of clicks})

  • TOTAL_AVG: obtiene el promedio de todos los valores del campo de tipo métrica indicado. La sintaxis para usar esta función es TOTAL_AVG(metric_field). Por ejemplo, TOTAL_AVG({Q1.4 Number of clicks})

  • TOTAL_MIN: obtiene el mínimo de todos los valores del campo de tipo métrica indicado. La sintaxis para usar esta función es TOTAL_MIN(metric_field). Por ejemplo, TOTAL_MIN({Q1.4 Number of clicks})

  • TOTAL_MAX: obtiene el máximo de todos los valores del campo de tipo métrica indicado. La sintaxis para usar esta función es TOTAL_MAX(metric_field). Por ejemplo, TOTAL_MAX({Q1.4 Number of clicks})

  • TOTAL_COUNT: obtiene la cuenta de todos los valores que tiene el campo de tipo métrica indicado, sin tener en cuenta si se repiten o no. La sintaxis para usar esta función es TOTAL_COUNT(metric_field). Por ejemplo, TOTAL_COUNT({Q1.4 Number of clicks})

  • TOTAL_COUNT_DISTINCT: obtiene la cuenta de todos los valores que tiene el campo de tipo métrica indicado, teniendo en cuenta sólamente los valores distintos. Es decir, si un valor se repite, contará como un único valor en la cuenta devuelta. La sintaxis para usar esta función es TOTAL_COUNT_DISTINCT(metric_field). Por ejemplo, TOTAL_COUNT_DISTINCT({Q1.4 Number of clicks})

Ventanas de cálculo en funciones MOVING_XXX. El funcionamiento de estas funciones se basa en definir una ventana de cálculo, compuesta por un número de registros o valores de una métrica, cuyos valores están ordenados según los criterios que apliquen. ¿Cómo de grande es una ventana de cálculo? Por defecto, el valor actual siempre se incluye en la ventana. Para definir cómo de grande o pequeña es esta ventana, se pueden utilizar el número de registros o valores, previos (usando previous range) y posteriores (usando next range) al actual. Esto permite definir ventanas centradas, desplazadas a la derecha o a la izquierda de cada valor. Algunos ejemplos:

  • Si previous range = 7 y next range = 0, entonces la ventana incluye los 7 valores previos al actual y el actual. Es una ventana desplazada a la izquierda.

  • Si previous range = 3 y next range = 3, entonces la ventana incluye los 3 valores previos al actual, el actual y los 3 valores siguientes al actual. Es una ventana centrada.

  • Si previous range = 2 y next range = 4, entonces la ventana incluye los 2 valores previos al actual, el actual y los 4 valores siguientes al actual. Es una ventana desplazada a la derecha.

Funciones de fecha

Trabajar con fechas resulta importante para poder convertir formatos, obtener partes de una fecha, crear fechas, obtener la fecha de hoy, etc. Las funciones de fecha permiten multitud de opciones, como las descritas a continuación:

  • DATE: obtiene una fecha a partir de la expresión pasada como parámetro, que típicamente es un texto con el formato estándar internacional para fechas, con la máscara ‘YYYY-MM-DD’. La sintaxis para usar esta función es DATE(expr). Por ejemplo, DATE({Q1.3 Date as text}) o DATE(‘2024-04-17’).

  • DATEPARSE: obtiene una fecha a partir de la expresión pasada como parámetro, que tiene el formato especificado en la máscara indicada. Esta función permite adaptarse a distintos formatos de fecha presentes en los datos de forma flexible para cada campo. La sintaxis para usar esta función es DATEPARSE(date_mask, expr). Por ejemplo, DATEPARSE(‘MM/DD/YYYY’, {Q1.3 Date as text}) o DATEPARSE(‘MM/DD/YYYY’, ‘04/17/2024’).

  • MAKEDATE: obtiene una fecha a partir de los valores de año, mes y día especificados. La sintaxis para usar esta función es MAKEDATE(year, month, day). Por ejemplo, MAKEDATE({Q1.1 Year}, {Q1.2 Month}, {Q1.3 Day}) o MAKEDATE(2024, {Q1.2 Month}, 1).

  • DATEADD: obtiene una fecha resultado de añadir el número de intervalos especificados a otra fecha. Esta función permite obtener fechas que son 1 año posteriores, 4 semanas anteriores o 15 días posteriores a otras. La sintaxis para usar esta función es DATEADD(date_level, interval, date). Las opciones disponibles para date_level son: ‘year’, ‘quarter’, ‘month’, ‘week’ y ‘day’. El intervalo debe ser un número entero, positivo, cero o negativo. Para los ejemplos anteriores sería: DATEADD(‘year’, 1, {Q1.5 My date}), DATEADD(‘week’, -4, {Q1.5 My date}) o DATEADD(‘day’, 15, {Q1.5 My date})

  • DATEDIFF: obtiene la diferencia entre los dos campos de fecha indicados, en el nivel de fecha especificado. Esta función permite obtener los días, semanas, meses, trimestres o años que hay entre dos fechas. La sintaxis para usar esta función es DATEDIFF(date_level, date1, date2). Las opciones disponibles para date_level son: ‘year’, ‘quarter’, ‘month’, ‘week’ y ‘day’. El resultado devuelto es un número entero, positivo, cero o negativo. Por ejemplo, DATEDIFF(‘day’, {Q1.5 My date}, {CF.1 Otra fecha calculada})

  • DATENAME: obtiene el nombre de la parte especificada de la fecha. Sirve para mostrar nombres de meses, días de la semana, etc. La sintaxis para usar esta función es DATENAME(date_part, date). Las opciones disponibles para date_part son: ‘year’, ‘quarter’, ‘month’, ‘week’, ‘weekday’, ‘dayofyear’ y ‘day’. El resultado devuelto es un texto, por ejemplo, DATENAME(‘month’, MAKEDATE(2024, 17, 1)) = ‘abril’

  • DATEPART: obtiene el número que corresponde con la parte especificada de la fecha. Sirve para quedarse por ejemplo con el día o la semana de una fecha. La sintaxis para usar esta función es DATEPART(iso_date_part, date). Las opciones disponibles para iso_date_part son: ‘year’, ‘quarter’, ‘month’, ‘week’, ‘weekday’, ‘dayofyear’, ‘day’, ‘iso-year’, ‘iso-week’ e ‘iso-weekday’. El resultado devuelto es un número, por ejemplo, DATEPART('iso-week', {Q1.1 OrderDate})

  • DATETRUNC: obtiene una nueva fecha, resultado de modificar la fecha indicada como parámetro, para tener el primer día del año, del trimestre, del mes, de la semana o de hoy, siempre a las 12 horas AM (o las 0h PM). Sirve para obtener las fechas de inicio de intervalos conocidos y regulares. La sintaxis para usar esta función es DATETRUNC(date_level, date). Las opciones disponibles para date_level son: ‘year’, ‘quarter’, ‘month’, ‘week’ y ‘day’. El resultado devuelto es una fecha, por ejemplo, DATETRUNC('month', {Q1.1 OrderDate})

  • YEAR: obtiene el valor correspondiente al año de la fecha indicada como parámetro. La sintaxis para usar esta función es YEAR(date). Por ejemplo, YEAR({Q1.1 OrderDate})

  • QUARTER: obtiene el valor correspondiente al trimestre de la fecha indicada como parámetro. La sintaxis para usar esta función es QUARTER(date). Por ejemplo, QUARTER({Q1.1 OrderDate})

  • MONTH: obtiene el valor correspondiente al mes de la fecha indicada como parámetro. La sintaxis para usar esta función es MONTH(date). Por ejemplo, MONTH({Q1.1 OrderDate})

  • WEEK: obtiene el valor correspondiente a la semana de la fecha indicada como parámetro. La sintaxis para usar esta función es WEEK(date). Por ejemplo, WEEK({Q1.1 OrderDate})

  • DAY: obtiene el valor correspondiente al día del año de la fecha indicada como parámetro. La sintaxis para usar esta función es DAY(date). Por ejemplo, DAY({Q1.1 OrderDate})

  • ISOYEAR: obtiene el valor correspondiente al año de la fecha indicada como parámetro, según estándar ISO 8601 para los años. La sintaxis para usar esta función es ISOYEAR(date). Por ejemplo, YEAR({Q1.1 OrderDate})

  • ISOWEEK: obtiene el valor correspondiente a la semana de la fecha indicada como parámetro, según estándar ISO 8601 para las semanas. La sintaxis para usar esta función es ISOWEEK(date). Por ejemplo, ISOWEEK({Q1.1 OrderDate})

  • TODAY: obtiene la fecha de hoy. La sintaxis para usar esta función es TODAY()

  • ISDATE: obtiene el booleano indicando con true o false si la fecha indicada como parámetro es realmente una fecha válida. La sintaxis para usar esta función es ISDATE(date). Por ejemplo, ISDATE({Q1.1 OrderDate})

Sobre los formatos de fecha internacionales. Al crear una fecha a partir de una cadena de texto, primero verificamos si la cadena coincide con los formatos ISO 8601 conocidos y luego verificamos si la cadena coincide con el formato de fecha y hora RFC 2822.

Las distintas máscaras que puedes construir para los datos están disponibles aquí.

Diferencias entre funciones de fechas ISO y “no” ISO. Las funciones etiquetadas como ISO tienen en cuenta las pequeñas diferencias que hay en los formatos de fechas, según documenta el estándar ISO 8601. Habitualmente, puedes utilizar las funciones no etiquetadas como ISO, para aprovechar el formato de fecha que especifiques o el que tenga el campo de datos, y aplicar la configuración regional que tengas configurada en Biuwer (formato de fechas, día de inicio de la semana). Si los valores devueltos no son correctos, puedes cambiar a la variante ISO de la función.

Funciones de texto

A menudo es necesario hacer modificaciones, ajustes u operaciones con cadenas de texto. Para ello, utiliza alguna de las siguientes funciones:

  • CONCAT: obtiene una cadena de texto resultado de concatenar dos cadenas de texto pasadas como parámetro. La sintaxis para usarla es CONCAT(str1, str2). Por ejemplo: CONCAT(‘Country: ‘, {Q1.3 SalesTerritoryCountry})

Funciones lógicas

Cuando es necesario aplicar expresiones distintas según diversas lógicas, es habitual usar las siguientes funciones:

  • IF: comprueba la lógica de una expresión, especificada para devolver un valor en caso de ser verdadera la comprobación y otro valor en caso contrario. Se trata de la construcción típicA IF+THEN+ELSE con la sintaxis IF(comparison expr, then expr, else expr). Por ejemplo, IF({Q1.3 SalesTerritoryCountry} = 'Australia', 'AUS', 'OTHER')

  • IFNULL: es una función que permite comprobar si una expresión es el valor NULL, para en dicho caso devolver otra expresión o valor. La sintaxis para usarla es IFNULL(expr, expr). Por ejemplo: IFNULL({Q1.3 SalesTerritoryCountry}, 'No value')

Última actualización