Campos calculados
Los campos calculados de tarjeta permiten obtener resultados al combinar uno o varios campos resultado de las consultas realizadas.
Last updated
Los campos calculados de tarjeta permiten obtener resultados al combinar uno o varios campos resultado de las consultas realizadas.
Last updated
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:
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.
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
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.
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 [,expression]), donde son necesarias dos expresiones numéricas y opcionalmente se pueden especificar todas las expresiones numéricas que se deseen. 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 [,expression]), donde son necesarias dos expresiones numéricas y opcionalmente se pueden especificar todas las expresiones numéricas que se deseen. 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
Estas funciones son útiles para saber más sobre los datos y muestran a los usuarios cálculos significativos sobre detalles ocultos dentro de los conjuntos de datos.
MEDIAN: obtiene el valor central del conjunto de datos si éste contiene un número impar de valores, o la interpolación entre los dos valores centrales si el conjunto de datos contiene un número par de valores. La sintaxis para usar esta función es MEDIAN(metric field). Por ejemplo, MEDIAN({Q1.4 Number of clicks}).
MODE: obtiene el valor que se repite con más frecuencia en el conjunto de datos. La sintaxis para usar esta función es MODE(metric field). Por ejemplo, MODE({Q1.4 Number of clicks}).
STANDARD_DEVIATION: obtiene un valor resultado de calcular la variación de los puntos de datos individuales del conjunto de datos respecto a la media. La Desviación Estándar es una función estadística que mide la dispersión de un conjunto de datos. Una desviación estándar alta indica una gran dispersión de los valores de los datos, mientras que un valor bajo indica una concentración de los valores. La sintaxis para usar esta función es STANDARD_DEVIATION(metric field). Por ejemplo, STANDARD_DEVIATION({Q1.4 Number of clicks}).
PERCENTILE: obtiene el k-ésimo percentil de los valores de un conjunto de datos. El percentil es una medida de posición usada en estadística que indica, una vez ordenados los valores del campo de menor a mayor, el valor del campo por debajo del cual se encuentra un porcentaje dado de valores del conjunto de datos. Por ejemplo, el percentil 20 es el valor bajo el cual se encuentran el 20 % de los valores, y el 80 % restante son mayores. La sintaxis para usar esta función es PERCENTILE(metric field, num), donde “num” es un número entero entre 1 y 100. Por ejemplo, PERCENTILE({Q1.4 Number of clicks}, 95).
QUARTILE: obtiene el k-ésimo cuartil de los valores de un conjunto de datos. El cuartil es una medida estadística que divide un conjunto de datos ordenados en cuatro partes iguales. Cada cuartil muestra un valor específico bajo el cual cae un cierto porcentaje de los datos. El primer cuartil (num = 1) coincide con el percentil 25 y es el valor bajo el cual se encuentran el 25% de los valores. El segundo cuartil (num = 2) coincide con el percentil 50, es la mediana y divide los datos en dos mitades iguales, siendo un indicador significativo de la tendencia central. El tercer cuartil (num = 3) coincide con el percentil 75 y es el valor bajo el cual se encuentran el 75% de los valores. Los cuartiles son útiles en diversas aplicaciones estadísticas para describir la variabilidad y los extremos de los datos. La sintaxis para usar esta función es QUARTILE(metric field, num), donde “num” es un número entero entre 1 y 3. Por ejemplo, QUARTILE({Q1.4 Number of clicks}, 3).
TERCILE: obtiene el k-ésimo tercil (o tertil) de los valores de un conjunto de datos. El tercil es una medida estadística que divide un conjunto de datos ordenados en tres partes iguales. Cada tercil muestra un valor específico bajo el cual cae un cierto porcentaje de los datos. El primer tercil (num = 1) es el valor bajo el cual se encuentran el 33,33% de los valores. El segundo tercil (num = 2) es el valor bajo el cual se encuentran el 66,66% de los valores. La sintaxis para usar esta función es TERCILE(metric field, num), donde “num” es un número entero entre 1 y 2. Por ejemplo, TERCILE({Q1.4 Number of clicks}, 2).
VARIANCE: obtiene la varianza correspondiente al conjunto de datos pasado como parámetro. En estadística descriptiva, la varianza es la media de los cuadrados de las desviaciones sobre la media. Funcionalmente es una medida de dispersión de los valores contenidos en el conjunto de datos. La sintaxis para usar esta función es VARIANCE(metric field). Por ejemplo, VARIANCE({Q1.4 Number of clicks}).
CORRELATION: obtiene el índice o coeficiente de correlación existente entre los dos conjuntos de datos pasados como parámetros. La correlación es una medida estadística que expresa hasta qué punto dos variables están relacionadas linealmente, es decir, que cambian conjuntamente a una tasa constante. Es una herramienta estadística común para describir relaciones simples sin tener en cuenta causas y efectos. El coeficiente de correlación de la muestra va desde -1 a +1 (sin unidades). Cuanto más se aproxima a cero, más débil es la relación lineal. Valores positivos indican una correlación positiva, en la que los valores de ambas variables tienden a incrementarse juntos. Valores negativos indican una correlación negativa, en la que los valores de una variable tienden a incrementarse mientras que los valores de la otra variable descienden. La sintaxis para usar esta función es CORRELATION(metric field, metric field). Por ejemplo, CORRELATION({Q1.4 Number of clicks}, {Q1.5 Duration of session}).
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.
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})
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.
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, al menos, dos argumentos indicados, que deben ser del mismo tipo, incluyendo cadenas de texto, campos de texto y otros campos calculados de texto. La sintaxis para usarla es CONCAT(expression, expression [,expression]), donde son necesarias dos expresiones de texto y opcionalmente se pueden especificar todas las expresiones de texto que se deseen. Por ejemplo: CONCAT(‘Country: ‘, {Q1.3 SalesTerritoryCountry})
CONTAINS: indica si la cadena de texto pasada como primer parámetro contiene la cadena de texto pasada como segundo parámetro, es decir, devuelve verdadero o falso (campo booleano, como true o false). La sintaxis para usar esta función es CONTAINS(dimension field, string). Por ejemplo, para el valor ‘España’ CONTAINS({Q1.1 País}, ‘aña’) devolvería true.
ENDS_WITH: indica si la cadena de texto pasada como primer parámetro termina por la cadena de texto pasada como segundo parámetro, es decir, devuelve verdadero o falso (campo booleano, como true o false). La sintaxis para usar esta función es ENDS_WITH(dimension_field, string). Por ejemplo, para el valor ‘España’ ENDS_WITH({Q1.1 País}, ‘aña’) devolvería true.
STARTS_WITH: indica si la cadena de texto pasada como primer parámetro empieza por la cadena de texto pasada como segundo parámetro, es decir, devuelve verdadero o falso (campo booleano, como true o false). La sintaxis para usar esta función es STARTS_WITH(dimension_field, string). Por ejemplo, para el valor ‘España’ STARTS_WITH({Q1.1 País}, ‘aña’) devolvería false.
CAPITALIZE: obtiene la cadena de texto pasada como parámetro con el primer carácter en mayúscula. La sintaxis para usar esta función es CAPITALIZE(dimension_field). Por ejemplo, para el valor ‘productos’ CAPITALIZE({Q1.1 Nombre Producto}) devolvería ‘Productos’.
LOWER: obtiene toda la cadena de texto pasada como parámetro en minúscula. La sintaxis para usar esta función es LOWER(dimension_field). Por ejemplo, para el valor ‘Productos’ LOWER({Q1.1 Nombre Producto}) devolvería ‘productos’.
UPPER: obtiene toda la cadena de texto pasada como parámetro en mayúscula. La sintaxis para usar esta función es UPPER(dimension_field). Por ejemplo, para el valor ‘Productos’ UPPER({Q1.1 Nombre Producto}) devolvería ‘PRODUCTOS’.
FIND: obtiene la posición donde se encuentra la cadena de texto pasada como segundo parámetro dentro de la cadena de texto pasada como primer parámetro. Se devuelve 0 si no se encuentra, 1 si se encuentra en el primer carácter y así consecutivamente. Opcionalmente se puede indicar un tercer parámetro con la posición a partir de la cual se realiza la búsqueda. La sintaxis para usar esta función es FIND(dimension field, string, num). Por ejemplo, para el valor ‘Nebraska’ FIND({Q1.1 Region}, ‘a’) devolverá 5, FIND({Q1.1 Region}, ‘a’, 6) devolverá 8 y FIND({Q1.1 Region}, ‘o’, 2) devolverá 0.
FINDNTH: obtiene la posición donde se encuentra la ocurrencia número num de la cadena de texto pasada como segundo parámetro dentro de la cadena de texto pasada como primer parámetro. Se devuelve 0 si no se encuentra, 1 si se encuentra en el primer carácter y así consecutivamente. La sintaxis para usar esta función es FINDNTH(dimension field, string, num). Por ejemplo, para el valor ‘Nebraska’ FINDNTH({Q1.1 Region}, ‘a’, 1) devolverá 5, FINDNTH({Q1.1 Region}, ‘a’, 3) devolverá 0.
LEN: obtiene la longitud de la cadena de texto pasada como parámetro. La sintaxis para usar esta función es LEN(dimension field). Por ejemplo, para el valor ‘Nebraska’ LEN({Q1.1 Region}) devolverá 8.
LEFT: obtiene los primeros num caracteres de la cadena de texto pasada como primer parámetro, es decir, empezando por la izquierda. La sintaxis para usar esta función es LEFT(dimension field, num). Por ejemplo, para el valor ‘Nebraska’ LEFT({Q1.1 Region}, 3) devolverá ‘Neb’.
RIGHT: obtiene los últimos num caracteres de la cadena de texto pasada como primer parámetro, es decir, empezando por la derecha. La sintaxis para usar esta función es RIGHT(dimension field, num). Por ejemplo, para el valor ‘Nebraska’ RIGHT({Q1.1 Region}, 3) devolverá ‘ska’.
LTRIM: obtiene la cadena de texto pasada como primer parámetro sin espacios en blanco por la izquierda. La sintaxis para usar esta función es LTRIM(dimension field). Por ejemplo, para el valor ‘ Nebr aska ’ LTRIM({Q1.1 Region}) devolverá ‘Nebr aska ’.
RTRIM: obtiene la cadena de texto pasada como parámetro sin espacios en blanco por la derecha. La sintaxis para usar esta función es RTRIM(dimension field). Por ejemplo, para el valor ‘ Nebr aska ’ RTRIM({Q1.1 Region}) devolverá ‘ Nebr aska’.
TRIM: obtiene la cadena de texto pasada como parámetro sin espacios en blanco ni por la izquierda ni por la derecha. La sintaxis para usar esta función es TRIM(dimension field). Por ejemplo, para el valor ‘ Nebr aska ’ TRIM({Q1.1 Region}) devolverá ‘Nebr aska’.
SUBSTRING: obtiene la subcadena que resulta de la cadena de texto pasada como primer parámetro, tomando desde la posición start y por un número de caracteres length. Es una función muy habitual para obtener partes de cadenas de texto, incluso en conjunción con otras funciones para obtener las posiciones de inicio (start) y la longitud de la cadena resultante (length), como FIND y LEN. La sintaxis para usar esta función es SUBSTRING(dimension field, start, length). Por ejemplo, para el valor ‘Nebraska’ SUBSTRING({Q1.1 Region}, 1, 3) devolverá ‘Neb’.
REPLACE: obtiene la cadena de texto que resulta de reemplazar la cadena old_string por la cadena new_string en la cadena de texto pasada como primer parámetro. La sintaxis para usar esta función es REPLACE(dimension field, old_string, new_string). Por ejemplo, para el valor ‘Nebraska’ REPLACE({Q1.1 Region}, ’aska’, ‘askas#’) devolverá ‘Nebraskas#’.
SPACE: obtiene una cadena compuesta por el número especificado de espacios repetidos. La sintaxis para usar esta función es SPACE(num). Por ejemplo, SPACE(5) devolverá ‘ ’.
SPLIT: obtiene una subcadena de la cadena de texto pasada como primer parámetro, usando el delimitador pasado en el segundo parámetro como delimitador y el tercer parámetro es la posición de la subcadena a devolver. La sintaxis para usar esta función es SPLIT(dimension field, string, num). Por ejemplo, para el valor ‘Nebraska;Washington;Miami’ SPLIT({Q1.1 Region}, ’;’, 3) devolverá ‘Miami’.
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')