Compartir a través de


Referencia de función de cálculo personalizada

En esta página se proporciona una referencia completa de todas las funciones admitidas para los cálculos personalizados en los paneles de IA/BI. Para obtener información sobre cómo usar cálculos personalizados, vea ¿Qué son los cálculos personalizados?.

Funciones agregadas

Todas las medidas calculadas deben agregarse. Se admiten las siguientes operaciones de agregación:

Nota:

Use la DISTINCT palabra clave en las funciones de agregado para incluir solo valores únicos en la agregación. Además, la FILTER(WHERE condition) cláusula se puede anexar a cualquier función de agregado para limitar los valores incluidos en el cálculo.

Función Description
any(expr) Devuelve true si al menos un valor de expr en el grupo es true.
any_value(expr) Devuelve algún valor de expr para un grupo de filas.
approx_count_distinct(expr[, relativeSD]) Devuelve el número estimado de valores distintos en expr.
approx_percentile ([ALL | DISTINCT] expr, percentil [, precisión]) Devuelve el valor de percentil aproximado de expr en el percentil especificado.
avg(expr) Devuelve la media calculada en una columna o expresión.
bool_or(expr) Devuelve true si al menos un valor de expr es true.
corr(expr1, expr2) Devuelve el coeficiente de correlación de Pearson entre expr1 y expr2.
count(*) Devuelve el número de filas de un grupo.
COUNT(DISTINCT expr) Devuelve el número de filas únicas de un grupo.
count_if(expr) Devuelve el recuento de filas que cumplen una condición determinada.
first(expr [, ignoreNull]) Devuelve el primer valor de expr para un grupo.
first_value(expr [, ignoreNull]) Devuelve el primer valor de expr para un grupo.
last(expr [, ignoreNull]) Devuelve el último valor de expr para el grupo.
last_value(expr [, ignoreNull]) Devuelve el último valor de expr para el grupo.
listagg(expr [, delimiter]) Devuelve la concatenación de valores no NULL en el grupo.
max(expr) Devuelve el valor máximo de una columna o expresión.
max_by(expr1, expr2) Devuelve el valor de expr1 asociado al valor máximo de expr2.
mean(expr) Devuelve la media calculada en una columna o expresión.
median(expr) Devuelve la mediana de un conjunto de valores.
min(expr) Devuelve el valor mínimo de una columna o expresión.
min_by(expr1, expr2) Devuelve el valor de expr1 asociado al valor mínimo de expr2.
mode(expr [, determinista ]) Devuelve el valor más frecuente de expr.
percentile(expr, porcentaje [, frecuencia]) Devuelve el valor de percentil exacto de expr en el percentil especificado de un grupo.
percentile_approx(expresión, porcentaje [, precisión]) Devuelve el valor de percentil aproximado de expr en el percentil especificado.
regr_slope(y, x) Devuelve la pendiente de la línea de regresión lineal para pares que no son NULL en un grupo.
some(expr) Devuelve true si al menos un valor de expr en el grupo es true.
std(expr) Devuelve la desviación estándar de un conjunto de valores.
stddev(expr) Devuelve la desviación estándar de un conjunto de valores.
stddev_pop(expr) Devuelve la desviación estándar de población de un conjunto de valores.
stddev_samp(expr) Devuelve la desviación estándar de ejemplo de un conjunto de valores.
string_agg(expr [, delimitador]) Devuelve la concatenación de valores de cadena que no son NULL en el grupo.
sum(expr) Devuelve el total de valores de una columna o expresión.
variance(expr) Devuelve la varianza de un conjunto de valores.

Operaciones aritméticas

Puede combinar expresiones con las siguientes operaciones aritméticas:

Operation Description
expr1 % expr2 Devuelve el resto de dividir expr1 por expr2.
multiplicador * multiplicando Devuelve el producto de dos expresiones.
expr1 + expr2 Devuelve la suma de expr1 y expr2.
+ expr Devuelve el valor de la expresión.
expr1 - expr2 Devuelve la diferencia al restar expr2 de expr1.
- expr Devuelve el valor negado de la expresión.
dividendo/divisor Devuelve el resultado de dividir el dividendo por el divisor.
divisor div de dividendos Devuelve la parte integral de la división de dividend por divisor.
abs(expr) Devuelve el valor absoluto de la expresión numérica.
acos(expr) Devuelve el coseno inverso (coseno de arco) de expr.
asin(expr) Devuelve el seno inverso (seno de arco) de expr.
bround(expr [, d]) Devuelve expr redondeado a d posiciones decimales mediante HALF_EVEN modo de redondeo.
"ceil(expr)" o "ceiling(expr)" Devuelve el entero más pequeño no menor que expr.
cos(expr) Devuelve el coseno de expr.
exp(expr) Devuelve e elevado a la potencia de expr.
floor(expr) Devuelve el entero más grande no mayor que expr.
ln(expr) Devuelve el logaritmo natural de la expresión.
log(base, expr) Devuelve el logaritmo de expr con el especificado base.
log10(expr) Devuelve el logaritmo base-10 de la expresión.
mod(expr1, expr2) Devuelve el resto de dividir expr1 por expr2.
nullifzero(expr) Devuelve NULL si expr es 0; de lo contrario, devuelve expr.
pi() Devuelve el valor de pi.
pmod(expr1, expr2) Devuelve el valor positivo de expr1 mod expr2.
pow(expr1, expr2) o power(expr1, expr2) Devuelve el resultado de expr1 elevado a la potencia de expr2.
radians(expr) Convierte grados en radianes.
rand([seed]) Devuelve un valor aleatorio con distribución uniforme en el intervalo de 0 (inclusivo) a 1 (exclusivo).
round(expr [, d]) Devuelve expr redondeado a d posiciones decimales mediante HALF_UP modo de redondeo.
sign(expr) Devuelve el signo de la expresión numérica.
sin(expr) Devuelve el seno de expr.
sqrt(expr) Devuelve la raíz cuadrada de expr.
try_add(expr1, expr2) Agrega dos valores. Si se produce un error, devuelve NULL.
try_divide(dividendo, divisor) Divide el dividendo por el divisor. Si se produce un error, devuelve NULL.
try_multiply(multiplicador, multiplicador) Multiplica dos números. Si se produce un error, devuelve NULL.
try_subtract(expr1, expr2) Resta expr2 de expr1. Si se produce un error, devuelve NULL.
zeroifnull(expr) Devuelve 0 si expr es NULL, de lo contrario devuelve expr.

Funciones y operadores booleanos

Los cálculos personalizados admiten operadores booleanos y de comparación básicos. Se admiten los siguientes operadores y funciones:

Operation Description
expr1 != expr2 Devuelve true si expr1 no es igual a expr2.
!expr No lógico.
expr1 & expr2 Devuelve el AND bit a bit de expr1 y expr2.
expr1 && expr2 Devuelve true si tanto expr1 como expr2 son true.
expr1 <=> expr2 Devuelve el mismo resultado que el operador igual para operandos que no son NULL, pero devuelve true si ambos son nully false si uno es null.
expr1 <> expr2 Devuelve true si expr1 no es igual a expr2.
expr1 < expr2 Devuelve true si expr1 es menor que expr2.
expr1 <= expr2 Devuelve true si expr1 es menor o igual que expr2.
expr1 = expr2 Devuelve true si expr1 es igual a expr2.
expr1 == expr2 Devuelve true si expr1 es igual a expr2.
expr1 > expr2 Devuelve true si expr1 es mayor que expr2.
expr1 >= expr2 Devuelve true si expr1 es mayor o igual que expr2.
expr1 ^ expr2 Devuelve el OR exclusivo bit a bit de expr1 y expr2.
expr1 | expr2 Devuelve el OR bit a bit de expr1 y expr2.
expr1 || expr2 Devuelve true si al menos uno de expr1 o expr2 es true.
~expr Devuelve el valor NOT bit a bit de expr.
expr1 y expr2 Devuelve true si tanto expr1 como expr2 son true.
expr entre el límite inferior y el límite superior Comprueba si expr se encuentra dentro del intervalo especificado (sintaxis especial).
Patrón str ilike Devuelve true si str coincide con pattern (no distingue mayúsculas de minúsculas). También se puede usar como ilike(str, pattern [, escapeChar]).
expr en (value1, value2, ...) Comprueba si expr coincide con cualquier valor de una lista (sintaxis especial).
isnan(expr) Devuelve true si expr es NaN (no un número).
isnotnull(expr) Devuelve true si expr no es NULL.
isnull(expr) Devuelve true si expr es NULL.
Patrón de tipo str Devuelve true si str coincide con pattern. También se puede usar como like(str, pattern [, escapeChar]).
no expr Negación lógica (operador de prefijo). También se puede usar como not(expr).
expr1 o expr2 Devuelve true si al menos uno de expr1 o expr2 es true.
str regexp regexp Devuelve true si str coincide con la expresión regular regexp.
regexp_like(str, regexp) Devuelve true si str coincide con la expresión regular regexp.
str rlike regexp Devuelve true si str coincide con la expresión regular regexp.

Funciones de conversión

Use las siguientes funciones para convertir valores en un tipo especificado:

Función Description
expr :: type Convierte el valor expr al tipo de datos de destino type.
bigint(expr) Convierte el valor expr en BIGINT.
boolean(expr) Convierte el valor expr en BOOLEAN.
cast(expr AS type) Convierte el valor expr al tipo de datos de destino type.
date(expr) Convierte el valor expr en DATE.
decimal(expr [, p [, s]]) Convierte el valor expr a DECIMAL con precisión p y escala s.
double(expr) Convierte el valor expr en DOUBLE.
float(expr) Convierte el valor expr en FLOAT.
int(expr) Convierte el valor expr en INT.
string(expr) Convierte el valor expr en STRING.
timestamp(expr) Convierte el valor expr en TIMESTAMP.
to_date(expr [, fmt]) Convierte el expr con el fmt en una fecha.
to_timestamp(expr [, fmt]) Convierte el expr y el fmt en una marca de tiempo.
try_cast(expr AS type) Convierte el valor expr al tipo de datos de destino type de forma segura.
try_to_timestamp(expr [, fmt]) Analiza el expr con el fmt para obtener una marca de tiempo de forma segura.

Funciones date, timestamp y interval

Use las siguientes funciones para trabajar con fechas, marcas de tiempo e intervalos:

Función Description
add_months(fecha_inicio, número_meses) Devuelve la fecha que es num_months después de start_date.
curdate() Devuelve la fecha actual.
current_date() Devuelve la fecha actual.
current_timestamp() Devuelve la marca de tiempo actual.
date_add(start_date, num_days) Devuelve la fecha que es num_days después de start_date.
date_diff(endDate, startDate) Devuelve el número de días de startDate a endDate.
date_format(expr, fmt) Convierte una marca de tiempo en una cadena con el formato fmt.
date_part(campo, origen) Extrae una parte específica, como año, mes o día, de una fecha o marca de tiempo.
date_sub(start_date, num_days) Devuelve la fecha que es num_days antes de start_date.
date_trunc(fmt, source) Trunca una fecha o marca de tiempo en una unidad especificada, como año o mes.
dateadd(unidad, valor, expr) Agrega el intervalo de tiempo especificado a una fecha o marca de tiempo.
datediff(endDate, startDate) Devuelve el número de días de startDate a endDate.
day(expr) Devuelve el día del mes a partir de la fecha o marca de tiempo.
dayname(expr) Devuelve el nombre del día de la semana a partir de la fecha o el timestamp.
dayofmonth(expr) Devuelve el día del mes a partir de la fecha o marca de tiempo.
dayofweek(expr) Devuelve el día de la semana a partir de la fecha o marca de tiempo (1 = domingo, 7 = sábado).
dayofyear(expr) Devuelve el día del año a partir de la fecha o marca de tiempo.
extract(field FROM source) Extrae una parte de la fecha o marca de tiempo.
from_unixtime(unix_time [, fmt]) Convierte el número de segundos de la época de Unix en una marca de tiempo.
from_utc_timestamp(marca de tiempo, zona horaria) Interpreta la marca de tiempo especificada como UTC y se convierte en la zona horaria especificada.
getdate() Devuelve la marca de tiempo actual.
hour(expr) Devuelve el componente hour de la marca de tiempo.
last_day(expr) Devuelve el último día del mes al que pertenece la fecha o marca de tiempo.
make_date(año, mes, día) Crea una fecha a partir de los campos año, mes y día.
make_timestamp(year, month, day, hour, min, sec [, timezone]) Crea una marca de tiempo a partir de los campos año, mes, día, hora, minuto, segundo y, opcionalmente, zona horaria.
minute(expr) Devuelve el componente minuto de la marca de tiempo.
month(expr) Devuelve el componente de mes de la fecha o bien de la marca de tiempo.
meses_entre(timestamp1, timestamp2 [, redondear]) Devuelve el número de meses entre timestamp1 y timestamp2.
next_day(fecha_inicio, día_de_la_semana) Devuelve la primera fecha que es posterior a start_date y se denomina day_of_week.
now() Devuelve la marca de tiempo actual.
quarter(expr) Devuelve el trimestre del año para la fecha o marca de tiempo (de 1 a 4).
second(expr) Devuelve el segundo componente de la marca de tiempo.
timediff(endDate, startDate) Devuelve la diferencia entre dos marcas de tiempo medida en unidades.
timestamp_micros(microsegundos) Crea una marca de tiempo a partir del número de microsegundos desde la época de Unix.
timestamp_millis(milisegundos) Crea una marca de tiempo a partir del número de milisegundos desde la época de Unix.
timestamp_seconds(segundos) Crea una marca de tiempo a partir del número de segundos desde la época de Unix.
timestampadd(unidad, valor, marca de tiempo) Agrega el intervalo de tiempo especificado a una marca de tiempo.
timestampdiff(unit, start, end) Devuelve la diferencia entre dos marcas de tiempo medida en unidades.
to_date(expr [, fmt]) Convierte el expr con el fmt en una fecha.
to_timestamp(expr [, fmt]) Convierte el expr y el fmt en una marca de tiempo.
to_unix_timestamp(expr [, fmt]) Devuelve la marca de tiempo de Unix de la hora especificada.
to_utc_timestamp(marca de tiempo, zona horaria) Interpreta la marca de tiempo especificada en la zona horaria especificada y se convierte en UTC.
trunc(expr, fmt) Devuelve expr truncando la parte horaria del día a la unidad especificada por el modelo fmt de formato.
unix_micros(timestamp) Devuelve el número de microsegundos desde la época de Unix.
unix_millis(marca de tiempo) Devuelve el número de milisegundos desde la época de Unix.
unix_seconds(timestamp) Devuelve el número de segundos desde la época de Unix.
unix_timestamp([expr [, fmt]]) Devuelve la marca de tiempo de Unix de la hora especificada.
weekday(expr) Devuelve el día de la semana a partir de la fecha o marca de tiempo (0 = lunes, 6 = domingo).
weekofyear(expr) Devuelve la semana del año desde la fecha o el timestamp.
year(expr) Devuelve el componente de año de la fecha o marca de tiempo.

Funciones de cadena

Use las siguientes funciones para transformar cadenas. Para transformar cadenas datetime, consulte Funciones de conversión.

Función Description
base64(expr) Convierte el argumento en una cadena base64.
char(expr) Devuelve el carácter en el punto de código UTF-16 proporcionado.
charindex(substr, str [, pos]) Devuelve la posición de la primera aparición de substr en str después de la posición pos.
concat(expr1, expr2 [, ...]) Devuelve la concatenación de los argumentos.
concat_ws(sep [, expr1 [, ...]]) Devuelve la concatenación de cadenas separadas por sep.
contains(left, right) Devuelve true si right se encuentra en left.
convert_timezone(sourceTz, targetTz, sourceTs) Convierte la marca de tiempo sourceTs de la zona horaria sourceTz a la zona horaria targetTz.
decode(expr, charSet) Traduce el binario expr a una cadena utilizando la codificación del conjunto de caracteres charSet.
terminaCon(izquierda, derecha) Devuelve true si la cadena left está situada al final de la cadena right.
find_in_set(str, str_array) Devuelve el índice (basado en 1) de la cadena especificada en la lista delimitada por comas.
format_number(expr, scale) Formatos expr como #,###,###.##, redondeados a scale posiciones decimales.
format_string(format, expr [, ...]) Devuelve una cadena formateada a partir de cadenas de formato estilo printf.
hex(expr) expr Convierte en hexadecimal.
initcap(str) Devuelve str con la primera letra de cada palabra en mayúsculas.
instr(str, substr) Devuelve la posición de la primera aparición de substr en str.
lcase(str) Devuelve str con todos los caracteres cambiados a minúsculas.
left(str, len) Devuelve los len caracteres desde la izquierda de la cadena str.
len(expr) Devuelve la longitud de la cadena o expresión binaria.
longitud(expr) Devuelve la longitud de la cadena o expresión binaria.
levenshtein(str1, str2 [, threshold]) Devuelve la distancia de Levenshtein entre las dos cadenas dadas.
locate(substr, str [, pos]) Devuelve la posición de la primera aparición de substr en str después de la posición pos.
lower(str) Devuelve str con todos los caracteres cambiados a minúsculas.
lpad(str, len [, pad]) Devuelve str rellenado por la izquierda usando pad hasta una longitud de len.
ltrim(str [, trimStr]) Quita los caracteres iniciales de str.
md5(expr) Devuelve una suma de comprobación MD5 de 128 bits como una cadena hexadecimal.
parse_url(url, partToExtract [, key]) Extrae una parte de url.
position(substr, str [, pos]) Devuelve la posición de la primera aparición de substr en str después de la posición pos.
printf(format, expr [, ...]) Devuelve una cadena formateada a partir de cadenas de formato estilo printf.
regexp_count(str, regexp) Devuelve el número de veces que coincide la expresión regexp regular en str.
regexp_extract(str, regexp [, idx]) Extrae un grupo que coincide con regexp.
regexp_instr(str, regexp) Devuelve la posición de la primera coincidencia de regexp en str.
regexp_replace(str, regexp, rep [, position]) Reemplaza todas las subcadenas de str que coinciden regexp con rep.
regexp_substr(str, regexp) Devuelve la subcadena que coincide con la expresión regexp regular dentro de str.
repeat(str, n) Devuelve la cadena que repite strn las veces.
replace(str, search [, replace]) Reemplaza todas las apariciones de search por replace en str.
reverse(str) Devuelve str con el orden de los caracteres invertidos.
right(str, len) Devuelve los últimos len caracteres de la cadena str.
rtrim([trimStr,] str) Devuelve str con caracteres finales quitados.
sha2(expr, bitLength) Devuelve la familia SHA-2 de funciones hash.
split_part(str, delimiter, partNum) str Divide por delimiter y devuelve la parte solicitada.
startswith(left, right) Devuelve true si left comienza por right.
substr(str, pos [, len]) Devuelve la subcadena de str, comenzando en pos, con longitud len.
substring(str, pos [, len]) Devuelve la subcadena de str, comenzando en pos, con longitud len.
substring_index(str, delim, count) Devuelve la subcadena antes count de las apariciones de delim.
to_char(expr [, fmt]) Convierte expr en una cadena.
to_number(expr [, fmt]) Convierte la cadena expr en un número.
translate(input, from, to) input Se traduce reemplazando los caracteres de from por los caracteres correspondientes en to.
trim(str [, trimStr]) Quita los caracteres iniciales y finales de str.
ucase(str) Devuelve str con todos los caracteres cambiados a mayúsculas.
upper(str) Devuelve str con todos los caracteres cambiados a mayúsculas.
url_encode(str) Codifica str para su uso en parámetros de consulta URL.

Funciones varias

También se admiten las siguientes funciones:

Función Description
AGGREGATE OVER Calcula los valores entre intervalos de tiempo u otros conjuntos ordenados para las medidas.
CASE expr { WHEN opt1 THEN res1 } [...] [ELSE def] FIN Devuelve resN para el primer optN que es igual a expr, o def si ninguno coincide.
CASE { WHEN cond1 THEN res1 } [...] [ELSE def] END Devuelve resN para el primer condN con evaluación en true o def si no se encuentra ninguno.
coalesce(expr1, expr2 [, ...]) Devuelve el primer argumento que no es NULL.
decode(expr, search, result [, search, result]... [, valor predeterminado]) expr Compara con cada valor de búsqueda y devuelve el resultado correspondiente.
get_json_object(json_txt, ruta) Extrae un objeto JSON de json_txt en el especificado path.
greatest(expr [, ...]) Devuelve el mayor valor de todos los parámetros.
hash(expr1 [, expr2 ...]) Devuelve un valor hash de los argumentos.
if(condition, true_value, false_value) Devuelve true_value si condition es true, de lo contrario devuelve false_value.
iff(condition, true_value, false_value) Devuelve true_value si condition es true, de lo contrario devuelve false_value.
ifnull(expr1, expr2) Devuelve expr2 si expr1 es null; de lo contrario, expr1.
json_array_length(jsonArray) Devuelve el número de elementos de la matriz JSON más externa.
least(expr [, ...]) Devuelve el valor mínimo de todos los parámetros.
monotonically_increasing_id() Devuelve un aumento monótono de enteros de 64 bits.
nullif(expr1, expr2) Devuelve NULL si expr1 es igual a expr2; de lo contrario, devuelve expr1.
nvl(expr1, expr2) Devuelve expr2 si expr1 es NULL; de lo contrario, expr1.
nvl2(expr1, expr2, expr3) Devuelve expr2 si expr1 no es NULL, o expr3 en caso contrario.
schema_of_json(json [, options]) Devuelve el esquema en el formato DDL de la cadena JSON.