O Hologres oferece suporte às funções matemáticas listadas abaixo. Para funções não mencionadas aqui, consulte a seção Mathematical Functions and Operators na documentação do PostgreSQL 11.
Os exemplos de saída neste tópico usam a precisão de exibição padrão do cliente psql (extra_float_digits = 0). A quantidade de dígitos exibidos para resultados de ponto flutuante varia conforme a configuração extra_float_digits do cliente, mas os valores subjacentes permanecem idênticos.
Funções matemáticas comuns
|
Função |
Descrição |
|
Retorna o valor absoluto de um número. |
|
|
Retorna a raiz cúbica de um número. |
|
|
Arredonda um número para cima até o inteiro mais próximo. Alias de CEILING. |
|
|
Arredonda um número para cima até o inteiro mais próximo. Alias de CEIL. |
|
|
Converte radianos em graus. |
|
|
Retorna e elevado à potência de um número (e^num). |
|
|
Arredonda um número para baixo até o inteiro mais próximo. |
|
|
Retorna o logaritmo natural de um número. |
|
|
Retorna o logaritmo na base 10 de um número. |
|
|
Retorna o resto da divisão de um número por outro. |
|
|
Retorna o valor de π (3,14159265358979). |
|
|
Eleva a à potência de b. |
|
|
Converte graus em radianos. |
|
|
Retorna um número aleatório no intervalo [0,0, 1,0). |
|
|
Arredonda um número para o inteiro mais próximo ou para uma quantidade específica de casas decimais. |
|
|
Retorna o sinal de um número: 1, -1 ou 0. |
|
|
Retorna a raiz quadrada de um número. |
|
|
Trunca um número para inteiro ou para uma quantidade definida de casas decimais. |
|
|
Atribui um valor a buckets de largura igual e retorna o número do bucket correspondente. |
Funções trigonométricas
|
Função |
Descrição |
|
Retorna o arco cosseno de um número. |
|
|
Retorna o arco seno de um número. |
|
|
Retorna a arco tangente de um número. |
|
|
Retorna a arco tangente de y/x. |
|
|
Retorna o cosseno de um número. |
|
|
Retorna a cotangente de um número. |
|
|
Retorna o seno de um número. |
|
|
Retorna a tangente de um número. |
ABS
Retorna o valor absoluto de um número.
Sintaxe
ABS(num)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
INT, BIGINT, REAL, DOUBLE PRECISION, NUMERIC ou DECIMAL |
O número de entrada. |
Valor de retorno
Retorna um valor do mesmo tipo da entrada.
Exemplo
SELECT ABS(-17.4);
abs
-----
17.4
CBRT
Retorna a raiz cúbica de um número.
Sintaxe
CBRT(num)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
DOUBLE PRECISION |
O número de entrada. |
Valor de retorno
Retorna um valor DOUBLE PRECISION.
Exemplo
SELECT CBRT(9);
cbrt
-----------------
2.0800838230519
CEIL
Arredonda um número para cima até o inteiro mais próximo. CEIL é um alias de CEILING.
Sintaxe
CEIL(num)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
DOUBLE PRECISION ou NUMERIC |
O número de entrada. |
Valor de retorno
Retorna um valor do mesmo tipo da entrada.
Exemplo
SELECT CEIL(9.2);
ceil
------
10
Veja também
CEILING
Arredonda um número para cima até o inteiro mais próximo. CEILING é um alias de CEIL.
Sintaxe
CEILING(num)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
DOUBLE PRECISION ou NUMERIC |
O número de entrada. |
Valor de retorno
Retorna um valor do mesmo tipo da entrada.
Exemplo
SELECT CEILING(9.2);
ceiling
---------
10
Veja também
DEGREES
Converte um valor em radianos para graus.
Sintaxe
DEGREES(num)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
DOUBLE PRECISION |
O valor de entrada em radianos. |
Valor de retorno
Retorna um valor DOUBLE PRECISION que representa o ângulo equivalente em graus.
Exemplo
SELECT DEGREES(3.2);
degrees
--------------
183.34649444186343
Veja também
EXP
Retorna e elevado à potência de num (e^num).
Sintaxe
EXP(num)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
DOUBLE PRECISION ou NUMERIC |
O expoente. |
Valor de retorno
Retorna um valor do mesmo tipo da entrada.
Exemplo
SELECT EXP(1);
exp
----------------
2.718281828459045
FLOOR
Arredonda um número para baixo até o inteiro mais próximo.
Sintaxe
FLOOR(num)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
DOUBLE PRECISION ou NUMERIC |
O número de entrada. |
Valor de retorno
Retorna um valor do mesmo tipo da entrada.
Exemplo
SELECT FLOOR(3.8);
floor
------
3
Veja também
LN
Retorna o logaritmo natural de um número.
Sintaxe
LN(num)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
DOUBLE PRECISION ou NUMERIC |
O número de entrada. |
Valor de retorno
Retorna um valor do mesmo tipo da entrada.
Exemplo
SELECT LN(3.8);
ln
----------------
1.3350010667323401
LOG
Retorna o logaritmo na base 10 de um número.
Sintaxe
LOG(num)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
DOUBLE PRECISION ou NUMERIC |
O número de entrada. |
Valor de retorno
Retorna um valor do mesmo tipo da entrada.
Exemplo
SELECT LOG(100);
log
-----
2
MOD
Retorna o resto da divisão de num por x.
Sintaxe
MOD(num, x)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
NUMERIC |
O dividendo. |
|
|
Sim |
NUMERIC |
O divisor. |
Valor de retorno
Retorna um valor do mesmo tipo da entrada.
Exemplo
SELECT MOD(9, 4);
mod
-----
1
PI
Retorna o valor de π.
Sintaxe
PI()
Valor de retorno
Retorna o valor DOUBLE PRECISION 3.14159265358979.
Exemplo
SELECT PI();
pi
------------------
3.14159265358979
POWER
Eleva a à potência de b.
Sintaxe
POWER(a, b)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
DOUBLE PRECISION |
A base. |
|
|
Sim |
DOUBLE PRECISION |
O expoente. |
Valor de retorno
Retorna um valor DOUBLE PRECISION.
Exemplo
SELECT POWER(9, 3);
power
-------
729
RADIANS
Converte um valor em graus para radianos.
Sintaxe
RADIANS(num)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
DOUBLE PRECISION |
O valor de entrada em graus. |
Valor de retorno
Retorna um valor DOUBLE PRECISION que representa o ângulo equivalente em radianos.
Exemplo
SELECT RADIANS(45);
radians
-------------------
0.785398163397448
Veja também
RANDOM
Retorna um valor DOUBLE PRECISION aleatório no intervalo [0,0, 1,0).
Sintaxe
RANDOM()
Valor de retorno
Retorna um valor DOUBLE PRECISION. Valores válidos: [0.0, 1.0).
Exemplo
SELECT RANDOM();
random
-------------------
0.377819478977472
ROUND
Arredonda um número para o inteiro mais próximo ou para uma quantidade específica de casas decimais.
Sintaxe
-- Round to the nearest integer
ROUND(num)
-- Round to s decimal places
ROUND(num, s)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
DOUBLE PRECISION ou NUMERIC (forma com um argumento); apenas NUMERIC (forma com dois argumentos) |
O número de entrada. |
|
|
Não |
INT |
A quantidade de casas decimais para arredondamento. |
Valor de retorno
Retorna um valor do mesmo tipo de num.
Exemplo
SELECT ROUND(42.4);
round
-------
42
Veja também
SIGN
Retorna o sinal de um número: 1 se positivo, -1 se negativo ou 0 se zero.
Sintaxe
SIGN(num)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
DOUBLE PRECISION ou NUMERIC |
O número de entrada. |
Valor de retorno
Retorna 1, -1 ou 0.
Exemplo
SELECT SIGN(-8.4);
sign
------
-1
SQRT
Retorna a raiz quadrada de um número.
Sintaxe
SQRT(num)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
DOUBLE PRECISION ou NUMERIC |
O número de entrada. |
Valor de retorno
Retorna um valor do mesmo tipo da entrada.
Exemplo
SELECT SQRT(2);
sqrt
-----------------
1.4142135623731
TRUNC
Trunca um número em direção a zero, descartando os dígitos fracionários.
Sintaxe
-- Truncate to an integer
TRUNC(num)
-- Truncate to s decimal places
TRUNC(num, s)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
NUMERIC |
O número de entrada. |
|
|
Não |
INT |
A quantidade de casas decimais a manter. |
Valor de retorno
Retorna um valor NUMERIC.
Exemplo
SELECT TRUNC(2.456);
trunc
-------
2
SELECT TRUNC(2.4564, 2);
trunc
-------
2.45
Veja também
WIDTH_BUCKET
Divide um intervalo em buckets de largura igual e retorna o número do bucket onde um valor se enquadra.
Sintaxe
WIDTH_BUCKET(value, start, end, num_buckets)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
DOUBLE PRECISION ou NUMERIC |
O valor a ser atribuído a um bucket. |
|
|
Sim |
DOUBLE PRECISION ou NUMERIC |
O limite inferior do intervalo. |
|
|
Sim |
DOUBLE PRECISION ou NUMERIC |
O limite superior do intervalo. |
|
|
Sim |
INT |
A quantidade de buckets de largura igual a criar. |
Valor de retorno
Retorna um valor INT.
Exemplo
O exemplo a seguir divide o intervalo de 0 a 100 em 5 buckets iguais (0–20, 20–40, 40–60, 60–80, 80–100) e retorna o número do bucket para o valor 45.
SELECT WIDTH_BUCKET(45, 0, 100, 5);
width_bucket
--------------
3
O valor 45 está no bucket 3 (intervalo de 40 a 60).
ACOS
Retorna o arco cosseno de num.
Sintaxe
ACOS(num)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
NUMERIC |
O valor de entrada. Valores válidos: |
Valor de retorno
Retorna um valor DOUBLE PRECISION.
Exemplo
SELECT ACOS(-1);
acos
------------------
3.14159265358979
Veja também
ASIN
Retorna o arco seno de num.
Sintaxe
ASIN(num)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
DOUBLE PRECISION |
O valor de entrada. Valores válidos: |
Valor de retorno
Retorna um valor DOUBLE PRECISION.
Exemplo
SELECT ASIN(-1);
asin
------------------
-1.5707963267949
Veja também
ATAN
Retorna a arco tangente de num.
Sintaxe
ATAN(num)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
DOUBLE PRECISION |
O valor de entrada. |
Valor de retorno
Retorna um valor DOUBLE PRECISION.
Exemplo
SELECT ATAN(2);
atan
------------------
1.10714871779409
Veja também
ATAN2
Retorna a arco tangente de y/x, usando os sinais de ambos os argumentos para determinar o quadrante correto.
Sintaxe
ATAN2(y, x)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
DOUBLE PRECISION |
A coordenada y. |
|
|
Sim |
DOUBLE PRECISION |
A coordenada x. |
Valor de retorno
Retorna um valor DOUBLE PRECISION.
Exemplo
SELECT ATAN2(4, 2);
atan2
------------------
1.10714871779409
Veja também
COS
Retorna o cosseno de num (entrada em radianos).
Sintaxe
COS(num)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
DOUBLE PRECISION |
O ângulo de entrada em radianos. |
Valor de retorno
Retorna um valor DOUBLE PRECISION.
Exemplo
SELECT COS(2);
cos
--------------------
-0.416146836547142
Veja também
COT
Retorna a cotangente de num (entrada em radianos).
Sintaxe
COT(num)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
DOUBLE PRECISION |
O ângulo de entrada em radianos. |
Valor de retorno
Retorna um valor DOUBLE PRECISION.
Exemplo
SELECT COT(2);
cot
--------------------
-0.457657554360286
Veja também
SIN
Retorna o seno de num (entrada em radianos).
Sintaxe
SIN(num)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
DOUBLE PRECISION |
O ângulo de entrada em radianos. |
Valor de retorno
Retorna um valor DOUBLE PRECISION.
Exemplo
SELECT SIN(2);
sin
-------------------
0.909297426825682
Veja também
TAN
Retorna a tangente de num (entrada em radianos).
Sintaxe
TAN(num)
Parâmetros
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|
|
Sim |
DOUBLE PRECISION |
O ângulo de entrada em radianos. |
Valor de retorno
Retorna um valor DOUBLE PRECISION.
Exemplo
SELECT TAN(2);
tan
-------------------
-2.18503986326152
Veja também