Este tópico explica a sintaxe básica das funções matemáticas e fornece exemplos.
A tabela a seguir lista as funções matemáticas compatíveis com o Simple Log Service.
-
Os seguintes operadores são suportados:
+-*/%
Por padrão, o operador / descarta a parte decimal do resultado. Para mantê-la, use uma operação como
x*1.0/y. Em uma instrução analítica do Log Service, strings devem estar entre aspas simples (''). O Log Service interpreta texto sem aspas ou entre aspas duplas ("") como nome de campo ou coluna. Por exemplo, 'status' representa a string 'status', enquanto status ou "status" representa o campo de log status.
|
Função |
Sintaxe |
Descrição |
SQL |
SPL |
|
abs(x) |
Retorna o valor absoluto de x. |
√ |
√ |
|
|
acos(x) |
Retorna o arco cosseno de x. |
√ |
√ |
|
|
asin(x) |
Retorna o arco seno de x. |
√ |
√ |
|
|
atan(x) |
Retorna o arco tangente de x. |
√ |
√ |
|
|
atan2(x, y) |
Retorna o arco tangente de x dividido por y. |
√ |
√ |
|
|
cbrt(x) |
Retorna a raiz cúbica de x. |
√ |
√ |
|
|
ceil(x) |
Arredonda x para cima até o inteiro mais próximo. Esta função é um alias da função ceiling. |
√ |
√ |
|
|
ceiling(x) |
Arredonda x para cima até o inteiro mais próximo. |
√ |
√ |
|
|
cos(x) |
Retorna o cosseno de x. |
√ |
√ |
|
|
cosh(x) |
Retorna o cosseno hiperbólico de x. |
√ |
√ |
|
|
cosine_similarity(x, y) |
Retorna a similaridade de cosseno entre x e y. |
√ |
× |
|
|
degrees(x) |
Converte um ângulo de radianos para graus. |
√ |
√ |
|
|
e() |
Retorna o valor de e, base do logaritmo natural. |
√ |
√ |
|
|
exp(x) |
Eleva e à potência de x. |
√ |
× |
|
|
floor(x) |
Arredonda x para baixo até o inteiro mais próximo. |
√ |
√ |
|
|
from_base(x, y) |
Converte a string x na base y para um número. |
√ |
√ |
|
|
ln(x) |
Retorna o logaritmo natural de x. |
√ |
√ |
|
|
infinity() |
Retorna um valor que representa infinito positivo. |
√ |
√ |
|
|
is_nan(x) |
Verifica se x é Not a Number (NaN). |
√ |
√ |
|
|
log2(x) |
Retorna o logaritmo de x na base 2. |
√ |
√ |
|
|
log10(x) |
Retorna o logaritmo de x na base 10. |
√ |
√ |
|
|
log(x, y) |
Retorna o logaritmo de x na base y. |
√ |
× |
|
|
mod(x, y) |
Retorna o resto da divisão de x por y. |
√ |
√ |
|
|
nan() |
Retorna um valor NaN. |
√ |
√ |
|
|
pi() |
Retorna o valor de π com 15 casas decimais. |
√ |
√ |
|
|
pow(x, y) |
Eleva x à potência de y. Esta função é um alias da função power. |
√ |
√ |
|
|
power(x, y) |
Eleva x à potência de y. |
√ |
√ |
|
|
radians(x) |
Converte um ângulo de graus para radianos. |
√ |
√ |
|
|
rand() |
Retorna um número aleatório. |
√ |
√ |
|
|
random() |
Retorna um número aleatório no intervalo [0, 1). |
√ |
√ |
|
|
random(x) |
Retorna um número aleatório no intervalo [0, x). |
√ |
√ |
|
|
round(x) |
Arredonda x para o inteiro mais próximo. |
√ |
√ |
|
|
round(x, n) |
Arredonda x para n casas decimais. |
√ |
√ |
|
|
sign(x) |
Retorna o sinal de x como 1, 0 ou -1. |
√ |
× |
|
|
sin(x) |
Retorna o seno de x. |
√ |
√ |
|
|
sqrt(x) |
Retorna a raiz quadrada de x. |
√ |
√ |
|
|
tan(x) |
Retorna a tangente de x. |
√ |
√ |
|
|
tanh(x) |
Retorna a tangente hiperbólica de x. |
√ |
√ |
|
|
to_base(x, y) |
Converte o número x para sua representação em string na base y. |
√ |
× |
|
|
truncate(x) |
Remove a parte fracionária de x. |
√ |
√ |
|
|
width_bucket(x, bound1, bound2, numBuckets) |
Retorna o número do bucket de x em um intervalo dividido em buckets de largura igual. |
√ |
× |
|
|
width_bucket(x, bins) |
Usa um array para especificar o intervalo dos buckets e retorna o bucket ao qual x pertence. |
√ |
× |
Função abs
A função abs calcula o valor absoluto de x.
Syntax
abs(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
O parâmetro pode ser smallint, integer, real, tinyint, bigint, double ou decimal. |
Return value type
O valor retornado tem o mesmo tipo de dados do parâmetro de entrada.
Examples
Calcule o valor absoluto de -25.
-
Instrução de consulta e análise
* | select abs(-25) Resultados da consulta e análise: 25.
Função acos
Calcula o arco cosseno de x.
Syntax
acos(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Este parâmetro deve ser um double no intervalo [-1, 1]. Se o valor estiver fora desse intervalo, a função retorna NaN. |
Return value type
Um valor double.
Examples
Este exemplo calcula o arco cosseno de pi()/4.
-
Instrução de consulta
* | SELECT acos(pi()/4) Resultados da consulta e análise: A consulta retorna 0.6674572160283838.
Função asin
Calcula o arco seno de x.
Syntax
asin(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor double no intervalo [-1, 1]. Se o valor estiver fora desse intervalo, a função retorna NaN. |
Return value type
double
Examples
Calcula o arco seno de π/4.
-
Instrução de consulta e análise
* | SELECT asin(pi()/4) Resultados da consulta e análise: 0.9033391101131845.
Função atan
Calcula o arco tangente de x.
Syntax
atan(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
O valor deve ser um double. |
Return value type
Retorna um valor double.
Examples
Este exemplo calcula o arco tangente de pi()/4.
-
Instrução de consulta
* | SELECT atan(pi()/4) Resultado da consulta: 0.6657737500283538
Função atan2
Calcula o arco tangente de x dividido por y.
Syntax
atan2(x, y)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor double. |
|
y |
Um valor double. |
Return value type
Retorna um valor double.
Examples
Calcule o arco tangente de π dividido por 6.
-
Instrução de consulta
* | SELECT atan2(pi(),6) Resultado da consulta: O valor retornado é 0.48234790710102495.
Função cbrt
Calcula a raiz cúbica de x.
Syntax
cbrt(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor double. |
Return value type
Retorna um valor double.
Examples
Calcule a raiz cúbica de 100.
-
Instrução de consulta
* | select cbrt(100) Resultado da consulta: 4.641588833612779.
Função ceil
A função ceil arredonda x para cima até o inteiro mais próximo. Ela é um alias da função ceiling.
Syntax
ceil(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor dos tipos tinyint, smallint, integer, real, bigint, double ou decimal.
|
Return value type
O valor retornado tem o mesmo tipo de dados do parâmetro.
Examples
Arredonde o valor do campo request_time para cima até o inteiro mais próximo.
-
Campo de exemplo
request_time:9.3 -
Instrução de consulta
* | SELECT ceil(request_time) AS request_time Resultados da consulta: O valor da coluna request_time é 10.0.
Função ceiling
A função ceiling arredonda x para cima até o inteiro mais próximo.
Syntax
ceiling(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor do tipo tinyint, smallint, integer, real, bigint, double ou decimal.
|
Return value type
O mesmo tipo de dados do parâmetro.
Examples
Arredonde o valor do campo request_time para cima até o inteiro mais próximo.
-
Campo de exemplo
request_time:9.3 -
Instrução de consulta e análise
* | SELECT ceiling(request_time) AS request_time Resultados da consulta e análise: A coluna request_time é 10.0.
Função cos
Calcula o cosseno de x.
Syntax
cos(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
O parâmetro deve ser um double. |
Return value type
Retorna um double.
Examples
Calcula o cosseno de 30 graus.
-
Instrução de consulta e análise
* | SELECT cos(pi()/6) Resultado da consulta e análise: 0.8660254037844387.
Função cosh
A função cosh calcula o cosseno hiperbólico de x.
Syntax
cosh(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
O valor é um double. |
Return value type
Retorna um valor double.
Examples
Calcule o cosseno hiperbólico de um ângulo de 30°.
-
Instrução de consulta e análise
* | SELECT cosh(pi()/6) Resultados da consulta e análise: 1.1402383210764287.
Cosine_similarity
Esta função calcula a similaridade de cosseno entre x e y.
Syntax
cosine_similarity(x, y)
Parameters
|
Parâmetro |
Descrição |
|
x |
O parâmetro é um map(varchar, double). |
|
y |
O parâmetro é um map(varchar, double). |
Return value type
Retorna um valor double.
Examples
Calcula a similaridade de cosseno entre dois vetores.
-
Consulta
* | SELECT cosine_similarity(MAP(ARRAY['a'], ARRAY[1.0]), MAP(ARRAY['a'], ARRAY[2.0])) A consulta retorna 1.0.
Função degrees
A função degrees converte um ângulo de radianos para graus.
Syntax
degrees(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
O ângulo em radianos, especificado como um valor double. |
Return value type
O ângulo equivalente em graus, retornado como um valor double.
Examples
Converta π radianos para graus.
-
Instrução de consulta
* | SELECT degrees(pi()) Resultados da consulta e análise: O resultado é 180.0.
Função e
A função e retorna o valor de e, base do logaritmo natural.
Syntax
e()
Return value type
Um valor double.
Examples
Retorna o valor de e.
-
Consulta
* | SELECT e() Resultados da consulta e análise: O valor retornado é 2.718281828459045.
Função exp
Calcula e elevado à potência de x.
Syntax
exp(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor double. |
Return value type
Um valor double.
Examples
Calcula e elevado à potência de 3.
-
Instrução de consulta e análise
* | SELECT exp(3) Resultado da consulta e análise: O valor retornado é 20.085536923187669.
Função floor
A função floor arredonda x para baixo até o inteiro mais próximo.
Syntax
floor(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
O valor deve ser tinyint, smallint, integer, real, bigint, double ou decimal.
|
Return value type
Retorna um valor double.
Examples
Arredonde o valor do campo request_time para baixo até o inteiro mais próximo.
-
Campo de exemplo
request_time:10.3 -
Instrução de consulta
* | SELECT floor(request_time) AS request_time Resultados da consulta e análise: O valor da coluna request_time é 10.0.
Função from_base
A função from_base converte a string x da base y para um número.
Syntax
from_base(x, y)
Parameters
|
Parâmetro |
Descrição |
|
x |
Uma string varchar. |
|
y |
A base do número. O valor deve ser um bigint de 2 a 36. |
Return value type
Retorna um bigint.
Examples
Converte a string binária '1101' para seu equivalente decimal.
-
Instrução de consulta
* | SELECT from_base('1101',2) Resultados: O valor retornado é 13.
Função ln
A função ln calcula o logaritmo natural de x.
Syntax
ln(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor double maior que 0. |
Return value type
Um valor double.
Examples
Este exemplo calcula o logaritmo natural de 2.
-
Instrução de consulta e análise
* | SELECT ln(2) Resultados da consulta e análise: Retorna 0.6931471805599453.
Função infinity
A função infinity retorna infinito positivo.
Syntax
infinity()
Return value type
double
Examples
Retorna infinito positivo.
-
Instrução de consulta e análise
* | SELECT infinity() Resultados da consulta e análise: Infinity.
Função is_nan
A função is_nan retorna true se x for NaN (Not a Number) e false caso contrário.
Syntax
is_nan(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor double. |
Return value type
Retorna um valor booleano.
Examples
Verifique se o valor do campo status é NaN.
-
Instrução de consulta e análise
* | SELECT is_nan(status) Resultados da consulta e análise: A instrução retorna false.
Função log2
A função log2 calcula o logaritmo de x na base 2.
Syntax
log2(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor double. |
Return value type
Retorna um valor double.
Examples
Calcule o logaritmo de 100 na base 2.
-
Instrução de consulta e análise
* | SELECT log2(100) Resultados da consulta e análise: O valor retornado é 6.643856189774725.
Função log10
A função log10 calcula o logaritmo de x na base 10.
Syntax
log10(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor |
Return value type
Retorna um valor double.
Examples
Este exemplo calcula o logaritmo de 100 na base 10.
-
Instrução de consulta e análise
* | SELECT log10(100) Resultado da consulta e análise: 2.0.
Função log
A função log calcula o logaritmo de x na base y.
Syntax
log(x, y)
Parameters
|
Parâmetro |
Descrição |
|
x |
O valor deve ser um double. |
|
y |
O valor deve ser um double. |
Return value type
Retorna um valor double.
Examples
Calcula o logaritmo de 100 na base 5.
-
Consulta
* | SELECT log(100,5) Resultado: 2.8613531161467867.
Função mod
A função mod retorna o resto da divisão de x por y.
Syntax
mod(x, y)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor do tipo tinyint, smallint, integer, real, bigint, double ou decimal. |
|
y |
Um valor do tipo tinyint, smallint, integer, real, bigint, double ou decimal. |
Return value type
O valor retornado tem o mesmo tipo de dados dos parâmetros de entrada.
Examples
Calcule o resto de 100 dividido por 30.
-
Instrução de consulta
* | SELECT mod(100,30) Resultado da consulta e análise: Retorna 10.
Função nan
A função nan retorna NaN (Not a Number).
Syntax
nan()
Return value type
Double.
Examples
Retorna um valor NaN.
-
Instrução de consulta
* | SELECT nan() Resultados da consulta: O valor retornado é NaN.
Função pi
Esta função retorna o valor de π, com precisão de 15 casas decimais.
Syntax
pi()
Return value type
Retorna um valor double.
Examples
Este exemplo retorna o valor de π.
-
Instrução de consulta e análise
* | SELECT pi() Resultados da consulta e análise: 3.141592653589793.
Função pow
A função pow retorna x elevado à potência de y. É um alias da função power.
Syntax
pow(x, y)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor double. |
|
y |
Um valor double. |
Return value type
Retorna um valor double.
Examples
Eleve 2 à potência de 5.
-
Instrução de consulta
* | SELECT pow(2,5) Resultados da consulta e análise: 32.0.
Função power
Retorna x elevado à potência de y.
Syntax
power(x, y)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor double. |
|
y |
Um valor double. |
Return value type
Um valor double.
Examples
Calcule 2 elevado à potência de 5.
-
Instrução de consulta e análise
* | SELECT power(2,5) Resultados da consulta e análise: Retorna 32.0.
Função radians
Converte um ângulo de graus para radianos.
Syntax
radians(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Deve ser um |
Return value type
Retorna um double.
Examples
Converta 180 graus para radianos.
-
Instrução de consulta
* | SELECT radians(180) Resultados da consulta: 3.141592653589793
Função rand
A função rand retorna um número aleatório.
Syntax
rand()
Return value type
double
Examples
A consulta a seguir retorna um número aleatório.
-
Instrução de consulta
* | select rand() Resultados da consulta e análise: Retorna um valor aleatório, como 0.8742241064002435.
Função random
A função random retorna um número aleatório no intervalo [0,x).
Syntax
-
Retorna um valor aleatório de dupla precisão no intervalo [0, 1.0).
random() -
Retorna um inteiro aleatório no intervalo [0, x).
random(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor tinyint, smallint, integer ou bigint. |
Return value type
Retorna um valor com o mesmo tipo de dados do parâmetro de entrada.
Examples
Gere um número aleatório no intervalo [0, 100).
-
Instrução de consulta
* | select random(100) Resultados da consulta: Retorna um inteiro aleatório, por exemplo, 44.
Função round
A função round arredonda x. Se você especificar n, a função arredonda o valor para n casas decimais. Se omitir n, ela arredonda x para o inteiro mais próximo.
Syntax
-
Arredonda x para o inteiro mais próximo.
round(x) -
Arredonda x para n casas decimais.
round(x, n)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor tinyint, smallint, integer ou bigint. |
|
n |
O número de casas decimais a serem mantidas. |
Return value type
O valor retornado tem o mesmo tipo de dados do parâmetro x.
Examples
Este exemplo compara as visualizações de página (PVs) de hoje com as de ontem e expressa a mudança como porcentagem.
-
Instrução 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)) A consulta retorna today como 1564075.0 e growth como -22.11.
Função sign
A função sign retorna o sinal de x como 1, 0 ou -1.
Syntax
sign(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
A expressão numérica a ser avaliada. Seu tipo de dados pode ser integer, smallint, tinyint, real, double, bigint ou decimal(p,s).
|
Return value type
Retorna o mesmo tipo de dados do parâmetro de entrada.
Examples
Calcule o sinal do número 10.
-
Instrução de consulta
* | SELECT sign(10) Resultado da consulta: O valor retornado é 1.
Função sin
Esta função calcula o seno de x.
Syntax
sin(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor double. |
Return value type
Retorna um valor double.
Examples
Este exemplo calcula o seno de 90 graus.
-
Instrução de consulta e análise
* | select sin(pi()/2) Resultados da consulta e análise: Retorna 1.0.
Função sqrt
Calcula a raiz quadrada de x.
Syntax
sqrt(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor double. |
Return value type
Retorna um valor double.
Examples
Calcule a raiz quadrada de 100.
-
Instrução de consulta e análise
* | select sqrt(100) Resultados da consulta e análise: O resultado é 10.0.
Função tan
A função tan calcula a tangente de x.
Syntax
tan(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor de dupla precisão. |
Return value type
Um valor de dupla precisão.
Examples
Calcule a tangente de 30 graus.
-
Instrução de consulta
* | SELECT tan(pi()/6) Resultados da consulta: 0.5773502691896257.
Função tanh
A função tanh calcula a tangente hiperbólica de x.
Syntax
tanh(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Deve ser um valor |
Return value type
Retorna um valor double.
Examples
Este exemplo calcula a tangente hiperbólica de π/6 radianos (30 graus).
-
Consulta
* | SELECT tanh(pi()/6) Resultado da consulta: A consulta retorna 0.4804727781564516.
Função to_base
Esta função converte o bigint x para sua representação em string na base y.
Syntax
to_base(x, y)
Parameters
|
Parâmetro |
Descrição |
|
x |
O bigint a ser convertido. |
|
y |
A base para a string de saída. O valor deve ser um bigint de 2 a 36, inclusive. |
Return value type
Retorna um valor varchar.
Examples
Converta 180 para uma string binária.
-
Instrução de consulta
* | SELECT to_base(180, 2) Resultado da consulta: 10110100
Função truncate
A função truncate remove a parte fracionária de x.
Syntax
truncate(x)
Parameters
|
Parâmetro |
Descrição |
|
x |
Um valor double. |
Return value type
Retorna um valor double.
Examples
Remova a parte fracionária de 11.11.
-
Instrução de consulta
* | SELECT truncate(11.11) Resultado da consulta: 11.0.
Função width_bucket
A função width_bucket retorna o número do bucket para um valor x.
Syntax
-
Divide um intervalo numérico em um número especificado de buckets de largura igual e retorna o número do bucket para x.
width_bucket(x, bound1, bound2, numBuckets) -
Retorna o número do bucket para x com base em um array especificado de limites de bucket.
width_bucket(x, bins)
Parameters
|
Parâmetro |
Descrição |
|
x |
O valor a ser colocado em bucket. Este valor deve ser do tipo double. |
|
bound1 |
Especifica o limite inferior do intervalo numérico. |
|
bound2 |
Especifica o limite superior do intervalo numérico. |
|
numBuckets |
O número de buckets. O valor deve ser um inteiro maior que 0. |
|
bins |
Use bins, um array do tipo double, para especificar o intervalo do bucket. |
Return value type
Retorna um valor do tipo bigint.
Se x estiver dentro do intervalo especificado, o bucket ao qual x pertence será retornado.
Se x estiver abaixo do limite inferior, a função retorna 0.
Se x for maior ou igual ao limite superior, a função retorna numBuckets+1.
Examples
-
Exemplo 1: Divida o intervalo numérico [10, 80) em 7 buckets de largura igual e retorne o número do bucket para cada valor no campo request_time.
-
Instrução de consulta
* | SELECT request_time, width_bucket(request_time, 10, 80,7) AS numBuckets Resultados da consulta e análise: A consulta retorna as colunas request_time e numBuckets. Essas colunas mostram o número do bucket correspondente a cada tempo de requisição. Por exemplo, se request_time for 26.0, numBuckets será 2; e se request_time for 49.0, numBuckets será 4.
-
-
Exemplo 2: Use um array para definir os limites dos buckets e retorne o número do bucket para cada valor no campo request_time.
-
Instrução de consulta
* | SELECT request_time, width_bucket(request_time, array[10,20,30,40,50,60,70,80]) AS numBuckets Resultados da consulta e análise: A consulta retorna as colunas request_time e numBuckets. Essas colunas mostram o número do bucket atribuído a cada tempo de requisição com base no array de limites personalizado. Por exemplo, se request_time for 26.0, numBuckets será 2; e se request_time for 54.0, numBuckets será 5.
-