Este tema explica la sintaxis básica de las funciones matemáticas y proporciona ejemplos.
A continuación se listan las funciones matemáticas compatibles con Simple Log Service.
-
Se admiten los siguientes operadores:
+-*/%
De forma predeterminada, el operador / descarta la parte decimal del resultado. Para conservar la parte decimal, utilice una operación como
x*1.0/y. En una instrucción analítica de Log Service, las cadenas deben ir entre comillas simples (''). Log Service interpreta el texto sin comillas o el texto entre comillas dobles ("") como un nombre de campo o de columna. Por ejemplo, 'status' representa la cadena 'status', mientras que status o "status" representa el campo de registro status.
|
Función |
Sintaxis |
Descripción |
SQL |
SPL |
|
abs(x) |
Devuelve el valor absoluto de x. |
√ |
√ |
|
|
acos(x) |
Devuelve el arco coseno de x. |
√ |
√ |
|
|
asin(x) |
Devuelve el arco seno de x. |
√ |
√ |
|
|
atan(x) |
Devuelve el arco tangente de x. |
√ |
√ |
|
|
atan2(x, y) |
Devuelve el arco tangente de x dividido por y. |
√ |
√ |
|
|
cbrt(x) |
Devuelve la raíz cúbica de x. |
√ |
√ |
|
|
ceil(x) |
Redondea x hacia arriba al entero más cercano. Esta función es un alias de la función ceiling. |
√ |
√ |
|
|
ceiling(x) |
Redondea x hacia arriba al entero más cercano. |
√ |
√ |
|
|
cos(x) |
Devuelve el coseno de x. |
√ |
√ |
|
|
cosh(x) |
Devuelve el coseno hiperbólico de x. |
√ |
√ |
|
|
cosine_similarity(x, y) |
Devuelve la similitud del coseno entre x y y. |
√ |
× |
|
|
degrees(x) |
Convierte un ángulo de radianes a grados. |
√ |
√ |
|
|
e() |
Devuelve el valor de e, la base del logaritmo natural. |
√ |
√ |
|
|
exp(x) |
Eleva e a la potencia de x. |
√ |
× |
|
|
floor(x) |
Redondea x hacia abajo al entero más cercano. |
√ |
√ |
|
|
from_base(x, y) |
Convierte la cadena x en base y a un número. |
√ |
√ |
|
|
ln(x) |
Devuelve el logaritmo natural de x. |
√ |
√ |
|
|
infinity() |
Devuelve un valor que representa infinito positivo. |
√ |
√ |
|
|
is_nan(x) |
Comprueba si x es Not a Number (NaN). |
√ |
√ |
|
|
log2(x) |
Devuelve el logaritmo en base 2 de x. |
√ |
√ |
|
|
log10(x) |
Devuelve el logaritmo en base 10 de x. |
√ |
√ |
|
|
log(x, y) |
Devuelve el logaritmo en base y de x. |
√ |
× |
|
|
mod(x, y) |
Devuelve el resto de x dividido por y. |
√ |
√ |
|
|
nan() |
Devuelve un valor NaN. |
√ |
√ |
|
|
pi() |
Devuelve el valor de π con 15 decimales. |
√ |
√ |
|
|
pow(x, y) |
Eleva x a la potencia de y. Esta función es un alias de la función power. |
√ |
√ |
|
|
power(x, y) |
Eleva x a la potencia de y. |
√ |
√ |
|
|
radians(x) |
Convierte un ángulo de grados a radianes. |
√ |
√ |
|
|
rand() |
Devuelve un número aleatorio. |
√ |
√ |
|
|
random() |
Devuelve un número aleatorio en el rango [0, 1). |
√ |
√ |
|
|
random(x) |
Devuelve un número aleatorio en el rango [0, x). |
√ |
√ |
|
|
round(x) |
Redondea x al entero más cercano. |
√ |
√ |
|
|
round(x, n) |
Redondea x a n decimales. |
√ |
√ |
|
|
sign(x) |
Devuelve el signo de x como 1, 0 o -1. |
√ |
× |
|
|
sin(x) |
Devuelve el seno de x. |
√ |
√ |
|
|
sqrt(x) |
Devuelve la raíz cuadrada de x. |
√ |
√ |
|
|
tan(x) |
Devuelve la tangente de x. |
√ |
√ |
|
|
tanh(x) |
Devuelve la tangente hiperbólica de x. |
√ |
√ |
|
|
to_base(x, y) |
Convierte el número x a su representación en cadena en base y. |
√ |
× |
|
|
truncate(x) |
Elimina la parte fraccionaria de x. |
√ |
√ |
|
|
width_bucket(x, bound1, bound2, numBuckets) |
Devuelve el número de bucket de x dentro de un rango dividido en buckets de ancho igual. |
√ |
× |
|
|
width_bucket(x, bins) |
Utiliza un arreglo para especificar el rango de los buckets y devuelve el bucket al que pertenece x. |
√ |
× |
Función abs
La función abs calcula el valor absoluto de x.
Syntax
abs(x)
Parameters
|
Parámetro |
Descripción |
|
x |
El parámetro puede ser smallint, integer, real, tinyint, bigint, double o decimal. |
Return value type
El valor devuelto tiene el mismo tipo de datos que el parámetro de entrada.
Examples
Calcule el valor absoluto de -25.
-
Instrucción de consulta y análisis
* | select abs(-25) Resultados de la consulta y el análisis: 25.
Función acos
Calcula el arco coseno de x.
Syntax
acos(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Este parámetro debe ser un valor double en el rango [-1, 1]. Si el valor está fuera de este rango, la función devuelve NaN. |
Return value type
Un valor double.
Examples
Este ejemplo calcula el arco coseno de pi()/4.
-
Instrucción de consulta
* | SELECT acos(pi()/4) Resultados de la consulta y el análisis: La consulta devuelve 0.6674572160283838.
Función asin
Calcula el arco seno de x.
Syntax
asin(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor double en el rango [-1, 1]. Si el valor está fuera de este rango, la función devuelve NaN. |
Return value type
double
Examples
Calcula el arco seno de π/4.
-
Instrucción de consulta y análisis
* | SELECT asin(pi()/4) Resultados de la consulta y el análisis: 0.9033391101131845.
Función atan
Calcula el arco tangente de x.
Syntax
atan(x)
Parameters
|
Parámetro |
Descripción |
|
x |
El valor debe ser de tipo double. |
Return value type
Devuelve un valor double.
Examples
Este ejemplo calcula el arco tangente de pi()/4.
-
Instrucción de consulta
* | SELECT atan(pi()/4) Resultado de la consulta: 0.6657737500283538
Función atan2
Calcula el arco tangente de x dividido por y.
Syntax
atan2(x, y)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor double. |
|
y |
Un valor double. |
Return value type
Devuelve un valor double.
Examples
Calcule el arco tangente de π dividido por 6.
-
Instrucción de consulta
* | SELECT atan2(pi(),6) Resultado de la consulta: El valor devuelto es 0.48234790710102495.
Función cbrt
Calcula la raíz cúbica de x.
Syntax
cbrt(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor double. |
Return value type
Devuelve un valor double.
Examples
Calcule la raíz cúbica de 100.
-
Instrucción de consulta
* | select cbrt(100) Resultado de la consulta: 4.641588833612779.
Función ceil
La función ceil redondea x hacia arriba al entero más cercano. La función ceil es un alias de la función ceiling.
Syntax
ceil(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de los tipos tinyint, smallint, integer, real, bigint, double o decimal.
|
Return value type
El valor devuelto tiene el mismo tipo de datos que el parámetro.
Examples
Redondee el valor del campo request_time hacia arriba al entero más cercano.
-
Campo de ejemplo
request_time:9.3 -
Instrucción de consulta
* | SELECT ceil(request_time) AS request_time Resultados de la consulta: El valor de la columna request_time es 10.0.
Función ceiling
La función ceiling redondea x hacia arriba al entero más cercano.
Syntax
ceiling(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de tipo tinyint, smallint, integer, real, bigint, double o decimal.
|
Return value type
El mismo tipo de datos que el parámetro.
Examples
Redondea el valor del campo request_time hacia arriba al entero más cercano.
-
Campo de ejemplo
request_time:9.3 -
Instrucción de consulta y análisis
* | SELECT ceiling(request_time) AS request_time Resultados de la consulta y el análisis: La columna request_time es 10.0.
Función cos
Calcula el coseno de x.
Syntax
cos(x)
Parameters
|
Parámetro |
Descripción |
|
x |
El parámetro debe ser de tipo double. |
Return value type
Devuelve un valor double.
Examples
Calcula el coseno de 30 grados.
-
Instrucción de consulta y análisis
* | SELECT cos(pi()/6) Resultado de la consulta y el análisis: 0.8660254037844387.
Función cosh
La función cosh calcula el coseno hiperbólico de x.
Syntax
cosh(x)
Parameters
|
Parámetro |
Descripción |
|
x |
El valor es de tipo double. |
Return value type
Devuelve un valor double.
Examples
Calcule el coseno hiperbólico de un ángulo de 30°.
-
Instrucción de consulta y análisis
* | SELECT cosh(pi()/6) Resultados de la consulta y el análisis: 1.1402383210764287.
Cosine_similarity
Esta función calcula la similitud del coseno entre x e y.
Syntax
cosine_similarity(x, y)
Parameters
|
Parámetro |
Descripción |
|
x |
El parámetro es de tipo map(varchar, double). |
|
y |
El parámetro es de tipo map(varchar, double). |
Return value type
Devuelve un valor double.
Examples
Calcula la similitud del coseno entre dos vectores.
-
Consulta
* | SELECT cosine_similarity(MAP(ARRAY['a'], ARRAY[1.0]), MAP(ARRAY['a'], ARRAY[2.0])) La consulta devuelve 1.0.
Función degrees
La función degrees convierte un ángulo de radianes a grados.
Syntax
degrees(x)
Parameters
|
Parámetro |
Descripción |
|
x |
El ángulo en radianes, especificado como un valor double. |
Return value type
El ángulo equivalente en grados, devuelto como un valor double.
Examples
Convierta π radianes a grados.
-
Instrucción de consulta
* | SELECT degrees(pi()) Resultados de la consulta y el análisis: El resultado es 180.0.
Función e
La función e devuelve el valor de e, la base del logaritmo natural.
Syntax
e()
Return value type
Un valor double.
Examples
Devuelve el valor de e.
-
Consulta
* | SELECT e() Resultados de la consulta y el análisis: El valor devuelto es 2.718281828459045.
Función exp
Calcula e elevado a la potencia x.
Syntax
exp(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor double. |
Return value type
Un valor double.
Examples
Calcula e elevado a la potencia 3.
-
Instrucción de consulta y análisis
* | SELECT exp(3) Resultado de la consulta y el análisis: El valor devuelto es 20.085536923187669.
Función floor
La función floor redondea x hacia abajo al entero más cercano.
Syntax
floor(x)
Parameters
|
Parámetro |
Descripción |
|
x |
El valor debe ser de tipo tinyint, smallint, integer, real, bigint, double o decimal.
|
Return value type
Devuelve un valor double.
Examples
Redondea el valor del campo request_time hacia abajo al entero más cercano.
-
Campo de ejemplo
request_time:10.3 -
Instrucción de consulta
* | SELECT floor(request_time) AS request_time Resultados de la consulta y el análisis: El valor de la columna request_time es 10.0.
Función from_base
La función from_base convierte la cadena x de la base y a un número.
Syntax
from_base(x, y)
Parameters
|
Parámetro |
Descripción |
|
x |
Una cadena varchar. |
|
y |
La base del número. El valor debe ser un bigint de 2 a 36. |
Return value type
Devuelve un valor bigint.
Examples
Convierte la cadena binaria '1101' a su equivalente decimal.
-
Instrucción de consulta
* | SELECT from_base('1101',2) Resultados: El valor devuelto es 13.
Función ln
La función ln calcula el logaritmo natural de x.
Syntax
ln(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor double mayor que 0. |
Return value type
Un valor double.
Examples
Este ejemplo calcula el logaritmo natural de 2.
-
Instrucción de consulta y análisis
* | SELECT ln(2) Resultados de la consulta y el análisis: Devuelve 0.6931471805599453.
Función infinity
La función infinity devuelve infinito positivo.
Syntax
infinity()
Return value type
double
Examples
Devuelve infinito positivo.
-
Instrucción de consulta y análisis
* | SELECT infinity() Resultados de la consulta y el análisis: Infinity.
Función is_nan
La función is_nan devuelve true si x es NaN (Not a Number) y false en caso contrario.
Syntax
is_nan(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor double. |
Return value type
Devuelve un valor booleano.
Examples
Compruebe si el valor del campo status es NaN.
-
Instrucción de consulta y análisis
* | SELECT is_nan(status) Resultados de la consulta y el análisis: La instrucción devuelve false.
Función log2
La función log2 calcula el logaritmo en base 2 de x.
Syntax
log2(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor double. |
Return value type
Devuelve un valor double.
Examples
Calcule el logaritmo en base 2 de 100.
-
Instrucción de consulta y análisis
* | SELECT log2(100) Resultados de la consulta y el análisis: El valor devuelto es 6.643856189774725.
Función log10
La función log10 calcula el logaritmo en base 10 de x.
Syntax
log10(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor |
Return value type
Devuelve un valor double.
Examples
Este ejemplo calcula el logaritmo en base 10 de 100.
-
Instrucción de consulta y análisis
* | SELECT log10(100) Resultado de la consulta y el análisis: 2.0.
Función log
La función log calcula el logaritmo en base y de x.
Syntax
log(x, y)
Parameters
|
Parámetro |
Descripción |
|
x |
El valor debe ser de tipo double. |
|
y |
El valor debe ser de tipo double. |
Return value type
Devuelve un valor double.
Examples
Calcula el logaritmo en base 5 de 100.
-
Consulta
* | SELECT log(100,5) Resultado: 2.8613531161467867.
Función mod
La función mod devuelve el residuo cuando x se divide entre y.
Syntax
mod(x, y)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de tipo tinyint, smallint, integer, real, bigint, double o decimal. |
|
y |
Un valor de tipo tinyint, smallint, integer, real, bigint, double o decimal. |
Return value type
El valor devuelto tiene el mismo tipo de datos que los parámetros de entrada.
Examples
Calcule el residuo de 100 dividido entre 30.
-
Instrucción de consulta
* | SELECT mod(100,30) Resultado de la consulta y el análisis: Devuelve 10.
Función nan
La función nan devuelve NaN (Not a Number).
Syntax
nan()
Return value type
Double.
Examples
Devuelve un valor NaN.
-
Instrucción de consulta
* | SELECT nan() Resultados de la consulta: El valor devuelto es NaN.
Función pi
Esta función devuelve el valor de π, con una precisión de 15 decimales.
Syntax
pi()
Return value type
Devuelve un valor double.
Examples
Este ejemplo devuelve el valor de π.
-
Instrucción de consulta y análisis
* | SELECT pi() Resultados de la consulta y el análisis: 3.141592653589793.
Función pow
La función pow devuelve x elevado a la potencia y. Es un alias de la función power.
Syntax
pow(x, y)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor double. |
|
y |
Un valor double. |
Return value type
Devuelve un valor double.
Examples
Eleve 2 a la potencia 5.
-
Instrucción de consulta
* | SELECT pow(2,5) Resultados de la consulta y el análisis: 32.0.
Función power
Devuelve x elevado a la potencia y.
Syntax
power(x, y)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor double. |
|
y |
Un valor double. |
Return value type
Un valor double.
Examples
Calcule 2 elevado a la potencia 5.
-
Instrucción de consulta y análisis
* | SELECT power(2,5) Resultados de la consulta y el análisis: Devuelve 32.0.
Función radians
Convierte un ángulo de grados a radianes.
Syntax
radians(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Debe ser un valor |
Return value type
Devuelve un valor double.
Examples
Convierta 180 grados a radianes.
-
Instrucción de consulta
* | SELECT radians(180) Resultados de la consulta: 3.141592653589793
Función rand
La función rand devuelve un número aleatorio.
Syntax
rand()
Return value type
double
Examples
A continuación se muestra una consulta que devuelve un número aleatorio.
-
Instrucción de consulta
* | select rand() Resultados de la consulta y el análisis: Devuelve un valor aleatorio, por ejemplo, 0.8742241064002435.
Función random
La función random devuelve un número aleatorio en el rango [0,x).
Syntax
-
Devuelve un valor aleatorio de doble precisión en el rango [0, 1.0).
random() -
Devuelve un entero aleatorio en el rango [0, x).
random(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de tipo tinyint, smallint, integer o bigint. |
Return value type
Devuelve un valor con el mismo tipo de datos que el parámetro de entrada.
Examples
Genere un número aleatorio en el rango [0, 100).
-
Instrucción de consulta
* | select random(100) Resultados de la consulta: Devuelve un entero aleatorio, por ejemplo, 44.
Función round
La función round redondea x. Si especifica n, la función redondea el valor a n decimales. Si omite n, redondea x al entero más cercano.
Syntax
-
Redondea x al entero más cercano.
round(x) -
Redondea x a n decimales.
round(x, n)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor de tipo tinyint, smallint, integer o bigint. |
|
n |
El número de decimales que se deben conservar. |
Return value type
El valor devuelto tiene el mismo tipo de datos que el parámetro x.
Examples
Este ejemplo compara las vistas de página (PV) de hoy con las de ayer y expresa el cambio como un porcentaje.
-
Instrucción de consulta
* | SELECT diff [1] AS today, round((diff [3] -1.0) * 100, 2) AS growth FROM (SELECT compare(pv, 86400) as diff FROM (SELECT COUNT(*) as pv FROM website_log)) La consulta devuelve today como 1564075.0 y growth como -22.11.
Función sign
La función sign devuelve el signo de x como 1, 0 o -1.
Syntax
sign(x)
Parameters
|
Parámetro |
Descripción |
|
x |
La expresión numérica que se va a evaluar. Su tipo de datos puede ser integer, smallint, tinyint, real, double, bigint o decimal(p,s).
|
Return value type
Devuelve el mismo tipo de datos que el parámetro de entrada.
Examples
Calcule el signo del número 10.
-
Instrucción de consulta
* | SELECT sign(10) Resultado de la consulta: El valor devuelto es 1.
Función sin
Esta función calcula el seno de x.
Syntax
sin(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor double. |
Return value type
Devuelve un valor double.
Examples
Este ejemplo calcula el seno de 90 grados.
-
Instrucción de consulta y análisis
* | select sin(pi()/2) Resultados de la consulta y el análisis: Devuelve 1.0.
Función sqrt
Calcula la raíz cuadrada de x.
Syntax
sqrt(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor double. |
Return value type
Devuelve un valor double.
Examples
Calcule la raíz cuadrada de 100.
-
Instrucción de consulta y análisis
* | select sqrt(100) Resultados de la consulta y el análisis: El resultado es 10.0.
Función tan
La función tan calcula la tangente de x.
Syntax
tan(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Valor de doble precisión. |
Return value type
Un valor de doble precisión.
Examples
Calcule la tangente de 30 grados.
-
Instrucción de consulta
* | SELECT tan(pi()/6) Resultados de la consulta: 0.5773502691896257.
Función tanh
La función tanh calcula la tangente hiperbólica de x.
Syntax
tanh(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Debe ser un valor |
Return value type
Devuelve un valor double.
Examples
Este ejemplo calcula la tangente hiperbólica de π/6 radianes (30 grados).
-
Consulta
* | SELECT tanh(pi()/6) Resultado de la consulta: La consulta devuelve 0.4804727781564516.
Función to_base
Esta función convierte el valor bigint x a su representación en cadena con base y.
Syntax
to_base(x, y)
Parameters
|
Parámetro |
Descripción |
|
x |
El valor bigint que se va a convertir. |
|
y |
La base para la cadena de salida. El valor debe ser un bigint entre 2 y 36, inclusive. |
Return value type
Devuelve un valor varchar.
Examples
Convierta 180 a una cadena binaria.
-
Instrucción de consulta
* | SELECT to_base(180, 2) Resultado de la consulta: 10110100
Función truncate
La función truncate elimina la parte fraccionaria de x.
Syntax
truncate(x)
Parameters
|
Parámetro |
Descripción |
|
x |
Un valor double. |
Return value type
Devuelve un valor double.
Examples
Elimine la parte fraccionaria de 11.11.
-
Instrucción de consulta
* | SELECT truncate(11.11) Resultado de la consulta: 11.0.
Función width_bucket
La función width_bucket devuelve el número de bucket correspondiente a un valor x.
Syntax
-
Divide un rango numérico en un número especificado de buckets de igual ancho y devuelve el número de bucket para x.
width_bucket(x, bound1, bound2, numBuckets) -
Devuelve el número de bucket para x según un arreglo especificado de límites de bucket.
width_bucket(x, bins)
Parameters
|
Parámetro |
Descripción |
|
x |
El valor que se va a asignar a un bucket. Este valor debe ser de tipo double. |
|
bound1 |
Especifica el límite inferior del rango numérico. |
|
bound2 |
Especifica el límite superior del rango numérico. |
|
numBuckets |
El número de buckets. El valor debe ser un entero mayor que 0. |
|
bins |
Utilice bins, un arreglo de tipo double, para especificar el rango del bucket. |
Return value type
Devuelve un valor de tipo bigint.
Si x está dentro del rango especificado, se devuelve el bucket al que pertenece x.
Si x es menor que el límite inferior, la función devuelve 0.
Si x es mayor o igual que el límite superior, la función devuelve numBuckets+1.
Examples
-
Ejemplo 1: Divida el rango numérico [10, 80) en 7 buckets de igual ancho y obtenga el número de bucket para cada valor en el campo request_time.
-
Instrucción de consulta
* | SELECT request_time, width_bucket(request_time, 10, 80,7) AS numBuckets Resultados de la consulta y el análisis: La consulta devuelve las columnas request_time y numBuckets. Estas columnas muestran el número de bucket correspondiente a cada tiempo de solicitud. Por ejemplo, si request_time es 26.0, numBuckets es 2; y si request_time es 49.0, numBuckets es 4.
-
-
Ejemplo 2: Utilice un arreglo para definir los límites de los buckets y obtenga el número de bucket para cada valor en el campo request_time.
-
Instrucción de consulta
* | SELECT request_time, width_bucket(request_time, array[10,20,30,40,50,60,70,80]) AS numBuckets Resultados de la consulta y el análisis: La consulta devuelve las columnas request_time y numBuckets. Estas columnas muestran el número de bucket asignado a cada tiempo de solicitud según el arreglo de límites personalizado. Por ejemplo, si request_time es 26.0, numBuckets es 2; y si request_time es 54.0, numBuckets es 5.
-