Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Funções matemáticas

acos

Introduzido em: v1.1.0

Retorna o arco cosseno do argumento.

Sintaxe

acos(x)

Argumentos

Valor retornado

Retorna o arco cosseno de x Float*

Exemplos

Exemplo de uso

SELECT acos(0.5);
1.0471975511965974

acosh

Introduzido em: v20.12.0

Retorna o cosseno hiperbólico inverso.

Sintaxe

acosh(x)

Argumentos

  • x — Cosseno hiperbólico do ângulo. Valores no intervalo: 1 ≤ x < +∞. (U)Int* ou Float* ou Decimal*

Valor retornado

Retorna o ângulo, em radianos. Valores no intervalo: 0 ≤ acosh(x) < +∞. Float64

Exemplos

Exemplo de uso

SELECT acosh(1)
0

asin

Introduzido em: v1.1.0

Calcula o arco-seno do argumento fornecido. Para argumentos no intervalo [-1, 1], retorna um valor no intervalo [-pi() / 2, pi() / 2].

Sintaxe

asin(x)

Argumentos

Valor retornado

Retorna o arco-seno do argumento x fornecido Float64

Exemplos

inverso

SELECT asin(1.0) = pi() / 2, sin(asin(1)), asin(sin(1))
1	1	0.9999999999999999

float32

SELECT toTypeName(asin(1.0::Float32))
Float64

nan

SELECT asin(1.1), asin(-2), asin(inf), asin(nan)
nan	nan	nan	nan

asinh

Introduzido em: v20.12.0

Retorna o seno hiperbólico inverso.

Sintaxe

asinh(x)

Argumentos

  • x — Seno hiperbólico do ângulo. Valores no intervalo: -∞ < x < +∞. (U)Int* ou Float* ou Decimal*

Valor retornado

Retorna o ângulo, em radianos. Valores no intervalo: -∞ < asinh(x) < +∞. Float64

Exemplos

Uso básico

SELECT asinh(0)
0

atan

Introduzido em: v1.1.0

Retorna a arcotangente do argumento.

Sintaxe

atan(x)

Argumentos

Valor retornado

Retorna a arcotangente de x. Float*

Exemplos

Exemplo de uso

SELECT atan(1);
0.7853981633974483

atan2

Introduzido na versão: v20.12.0

Retorna atan2 como o ângulo, em radianos, no plano euclidiano, entre o eixo x positivo e a semirreta até o ponto (x, y) ≠ (0, 0).

Sintaxe

atan2(y, x)

Argumentos

Valor retornado

Retorna o ângulo θ tal que -π < θ ≤ π, em radianos Float64

Exemplos

Exemplo de uso

SELECT atan2(1, 1)
0.7853981633974483

atanh

Introduzido na versão: v20.12.0

Retorna a arcotangente hiperbólica.

Sintaxe

atanh(x)

Argumentos

  • x — Tangente hiperbólica do ângulo. Valores no intervalo: -1 < x < 1. (U)Int*, Float* ou Decimal*. (U)Int* ou Float* ou Decimal*

Valor retornado

Retorna o ângulo, em radianos. Valores no intervalo: -∞ < atanh(x) < +∞ Float64

Exemplos

Exemplo de uso

SELECT atanh(0)
0

cbrt

Introduzido na versão: v1.1.0

Retorna a raiz cúbica do argumento.

Sintaxe

cbrt(x)

Argumentos

Valor retornado

Retorna a raiz cúbica de x. Float*

Exemplos

Exemplo de uso

SELECT cbrt(8);
2

cos

Introduzido em: v1.1.0

Retorna o cosseno do argumento.

Sintaxe

cos(x)

Argumentos

Valor retornado

Retorna o cosseno de x. Float*

Exemplos

Exemplo de uso

SELECT cos(0);
1

cosh

Introduzido em: v20.12.0

Retorna o cosseno hiperbólico do argumento.

Sintaxe

cosh(x)

Argumentos

Valor retornado

Retorna valores no intervalo: 1 ≤ cosh(x) < +∞ Float64

Exemplos

Uso básico

SELECT cosh(0)
1

degrees

Introduzido em: v22.2.0

Converte radianos em graus.

Sintaxe

degrees(x)

Argumentos

Valor retornado

Retorna o valor de x em graus. Float64

Exemplos

Uso básico

SELECT degrees(3.141592653589793)
180

e

Introduzido em: v1.1.0

Retorna a constante de Euler (e).

Sintaxe

e()

Argumentos

  • Nenhum.

Valor retornado

Retorna a constante de Euler Float64

Exemplos

Exemplo de uso

SELECT e();
2.718281828459045

erf

Introduzido em: v1.1.0

Se x for não negativo, então erf(x/(σ√2)) é a probabilidade de que uma variável aleatória com distribuição normal e desvio padrão σ assuma um valor que difira do valor esperado em mais de x.

Sintaxe

erf(x)

Argumentos

Valor retornado

Retorna o valor da função de erro Float*

Exemplos

Regra dos três sigmas

SELECT erf(3 / sqrt(2))
┌─erf(divide(3, sqrt(2)))─┐
│      0.9973002039367398 │
└─────────────────────────┘

erfc

Introduzido em: v1.1.0

Retorna um número próximo a 1-erf(x) sem perda de precisão para valores altos de x.

Sintaxe

erfc(x)

Argumentos

  • x — O valor para o qual se deseja calcular o valor da função de erro. (U)Int* ou Float* ou Decimal*

Valor retornado

Retorna o valor da função de erro complementar Float*

Exemplos

Exemplo de uso

SELECT erfc(0);
1

exp

Introduzido em: v1.1.0

Retorna e elevado à potência de x, em que x é o argumento dado à função.

Sintaxe

exp(x)

Argumentos

Valor retornado

Retorna e^x Float*

Exemplos

Uso básico

SELECT round(exp(-1), 4)
┌─round(exp(-1), 4)─┐
│            0.3679 │
└───────────────────┘

exp10

Introduzido em: v1.1.0

Retorna 10 elevado ao argumento fornecido.

Sintaxe

exp10(x)

Argumentos

Valor retornado

Retorna 10^x Float*

Exemplos

Exemplo de uso

SELECT exp10(2);
100

exp2

Introduzido em: v1.1.0

Retorna 2 elevado ao argumento fornecido.

Sintaxe

exp2(x)

Argumentos

Valor retornado

Retorna 2^x Float*

Exemplos

Exemplo de uso

SELECT exp2(3);
8

fatorial

Introduzido em: v22.11.0

Calcula o fatorial de um valor inteiro. O fatorial de 0 é 1. Da mesma forma, a função factorial() retorna 1 para qualquer valor negativo. O maior valor positivo permitido para o argumento de entrada é 20; um valor de 21 ou mais causará uma exceção.

Sintaxe

factorial(n)

Argumentos

  • n — Valor inteiro para o qual o fatorial deve ser calculado. O valor máximo é 20. (U)Int8/16/32/64

Valor retornado

Retorna o fatorial da entrada como UInt64. Retorna 1 para entrada 0 ou qualquer valor negativo. UInt64

Exemplos

Exemplo de uso

SELECT factorial(10)
3628800

hypot

Introduzido em: v20.12.0

Retorna o comprimento da hipotenusa de um triângulo retângulo. hypot evita problemas que podem ocorrer ao elevar ao quadrado números muito grandes ou muito pequenos.

Sintaxe

hypot(x, y)

Argumentos

Valor retornado

Retorna o comprimento da hipotenusa de um triângulo retângulo. Float64

Exemplos

Uso básico

SELECT hypot(1, 1)
1.4142135623730951

intExp10

Introduzido na versão: v1.1.0

Semelhante a exp10, mas retorna um número UInt64.

Sintaxe

intExp10(x)

Argumentos

Valor retornado

Retorna 10^x. UInt64

Exemplos

Exemplo de uso

SELECT intExp10(2);
100

intExp2

Introduzido na: v1.1.0

Semelhante a exp2, mas retorna um número UInt64.

Sintaxe

intExp2(x)

Argumentos

Valor retornado

Retorna 2^x. UInt64

Exemplos

Exemplo de uso

SELECT intExp2(3);
8

isPrime

Introduzido em: v26.5.0

Retorna 1 se o argumento for um número primo; caso contrário, 0.

Usa um bitmap de consulta exato para valores pequenos e um teste de Miller-Rabin determinístico para valores maiores. O resultado é exato para todos os tipos de entrada suportados.

Para tipos de inteiros sem sinal de maior largura (UInt128, UInt256), use isProbablePrime no lugar.

Sintaxe

isPrime(n)

Argumentos

Valor retornado

Retorna 1 se n for primo; caso contrário, 0. UInt8

Exemplos

Número primo

SELECT isPrime(17)
1

Número composto

SELECT isPrime(18)
0

Grande número primo UInt64

SELECT isPrime(18446744073709551557)
1

Valor máximo de UInt64

SELECT isPrime(18446744073709551615)
0

isProbablePrime

Introduzido em: v26.5.0

Retorna 1 se o argumento for provavelmente primo e 0 se for definitivamente composto.

Para UInt8, UInt16, UInt32 e UInt64, o resultado é exato e corresponde a isPrime. O argumento rounds é ignorado.

Para UInt128 e UInt256, um valor de retorno 1 é probabilístico. O argumento opcional rounds controla quantas rodadas de Miller-Rabin são usadas: mais rodadas reduzem a chance de falso positivo e aumentam o tempo de execução. Com testemunhas aleatórias uniformemente distribuídas, a taxa de falso positivo para um composto fixo é limitada por 4^(-rounds); o valor padrão de 25 mantém esse limite abaixo de 10^-15, e o máximo de 256 o mantém abaixo de 10^-154.

A função é determinística: as testemunhas são inicializadas com base em n, portanto o mesmo par (n, rounds) sempre produz o mesmo resultado. O limite de 4^(-rounds) é a probabilidade por entrada sob testemunhas aleatórias uniformemente distribuídas; com nossa inicialização determinística, ele passa a descrever uma fração das entradas — um composto que engana sua sequência de testemunhas retornará 1 de forma reproduzível.

Sintaxe

isProbablePrime(n[, rounds])

Argumentos

  • n — Inteiro sem sinal a ser testado quanto à primalidade. UInt8 ou UInt16 ou UInt32 ou UInt64 ou UInt128 ou UInt256
  • rounds — Constante inteira positiva opcional em [1, 256]. Número de rodadas de Miller-Rabin para UInt128/UInt256 (ignorado para tipos menores). O padrão é 25. UInt8 ou UInt16 ou UInt32 ou UInt64

Valor retornado

Retorna 1 se n for provavelmente primo e 0 se for definitivamente composto. UInt8

Exemplos

Primo pequeno

SELECT isProbablePrime(17)
1

Composto pequeno

SELECT isProbablePrime(18)
0

Maior número primo UInt64 (resultado exato)

SELECT isProbablePrime(18446744073709551557)
1

Primo de Mersenne M_127 (UInt128)

SELECT isProbablePrime(toUInt128('170141183460469231731687303715884105727'))
1

Número primo do campo base da Curve25519 2^255 - 19 (UInt256)

SELECT isProbablePrime(toUInt256('57896044618658097711785492504343953926634992332820282019728792003956564819949'))
1

Teste mais rápido, com menor confiabilidade: 5 rodadas

SELECT isProbablePrime(toUInt256('57896044618658097711785492504343953926634992332820282019728792003956564819949'), 5)
1

lgamma

Introduzido em: v1.1.0

Retorna o logaritmo da função gama.

Sintaxe

lgamma(x)

Argumentos

  • x — O número para o qual será calculado o logaritmo da função gama. (U)Int* ou Float* ou Decimal*

Valor retornado

Retorna o logaritmo da função gama de x. Float*

Exemplos

Exemplo de uso

SELECT lgamma(5);
3.1780538303479458

log

Introduzido em: v1.1.0

Retorna o logaritmo natural do argumento.

Sintaxe

log(x)

Aliases: ln

Argumentos

Valor retornado

Retorna o logaritmo natural de x. Float*

Exemplos

Exemplo de uso

SELECT log(10);
2.3025850938475476

log10

Introduzido em: v1.1.0

Retorna o logaritmo decimal do argumento.

Sintaxe

log10(x)

Argumentos

Valor retornado

Retorna o logaritmo decimal de x. Float*

Exemplos

Exemplo de uso

SELECT log10(100);
2

log1p

Introduzido em: v20.12.0

Calcula log(1+x). O cálculo de log1p(x) é mais preciso do que log(1+x) para valores pequenos de x.

Sintaxe

log1p(x)

Argumentos

Valor retornado

Retorna valores no intervalo: -∞ < log1p(x) < +∞ Float64

Exemplos

Exemplo de uso

SELECT log1p(0)
0

log2

Introduzido em: v1.1.0

Retorna o logaritmo binário do argumento.

Sintaxe

log2(x)

Argumentos

Valor retornado

Retorna o logaritmo binário de x. Float*

Exemplos

Exemplo de uso

SELECT log2(8);
3

pi

Introduzido em: v1.1.0

Retorna π (pi).

Sintaxe

pi()

Argumentos

  • Nenhum.

Valor retornado

Retorna pi Float64

Exemplos

Exemplo de uso

SELECT pi();
3.141592653589793

pow

Introduzido em: v1.1.0

Retorna x elevado à potência de y.

Sintaxe

pow(x, y)

Aliases: power

Argumentos

Valor retornado

Retorna x^y como Float64

Exemplos

Exemplo de uso

SELECT pow(2, 3);
8

proportionsZTest

Introduzido em: v22.3.0

Retorna estatísticas de teste para o teste Z de duas proporções — um teste estatístico para comparar as proporções de duas populações, x e y. A função oferece suporte aos métodos agrupado e não agrupado de estimativa do erro padrão. No método agrupado, as duas proporções são combinadas em uma média, e apenas uma proporção é usada para estimar o erro padrão. No método não agrupado, as duas proporções são usadas separadamente.

Sintaxe

proportionsZTest(successes_x, successes_y, trials_x, trials_y, conf_level, pool_type)

Argumentos

  • successes_x — Número de sucessos na população x. UInt64
  • successes_y — Número de sucessos na população y. UInt64
  • trials_x — Número de ensaios na população x. UInt64
  • trials_y — Número de ensaios na população y. UInt64
  • conf_level — Nível de confiança do teste. Float64
  • pool_type — Seleção do método de pooling para estimativa do erro padrão. Pode ser 'unpooled' ou 'pooled'. String

Valor retornado

Retorna uma tupla contendo: z_stat (estatística Z), p_val (valor de P), ci_low (limite inferior do intervalo de confiança), ci_high (limite superior do intervalo de confiança). Tuple(Float64, Float64, Float64, Float64)

Exemplos

Exemplo de uso

SELECT proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled');
┌─proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled')───────────────────────────────┐
│ (-0.20656724435948853,0.8363478437079654,-0.09345975390115283,0.07563797172293502) │
└────────────────────────────────────────────────────────────────────────────────────┘

radians

Introduzido na versão: v22.2.0

Converte graus em radianos.

Sintaxe

radians(x)

Argumentos

Valor retornado

Retorna o valor em radianos Float64

Exemplos

Exemplo de uso

SELECT radians(180)
3.141592653589793

sigmoid

Introduzido em: v20.1.0

Calcula a função sigmoide: 1 / (1 + exp(-x)). A função sigmoide mapeia qualquer número real para o intervalo (0, 1) e é frequentemente usada em aprendizado de máquina.

Sintaxe

sigmoid(x)

Argumentos

Valor retornado

Retorna o sigmoide do valor de entrada, no intervalo (0, 1). Float64

Exemplos

Uso básico

SELECT sigmoid(0)
0.5

sign

Introduzido em: v21.2.0

Retorna o sinal de um número real.

Sintaxe

sign(x)

Argumentos

Valor retornado

Retorna -1 para x < 0, 0 para x = 0 e 1 para x > 0. Int8

Exemplos

Sinal de zero

SELECT sign(0)
0

Sinal de positivo

SELECT sign(1)
1

Sinal de negativo

SELECT sign(-1)
-1

sin

Introduzido em: v1.1.0

Retorna o seno do argumento.

Sintaxe

sin(x)

Argumentos

Valor retornado

Retorna o seno de x.

Exemplos

simples

SELECT sin(1.23)
0.9424888019316975

sinh

Introduzido em: v20.12.0

Retorna o seno hiperbólico.

Sintaxe

sinh(x)

Argumentos

Valor retornado

Retorna valores no intervalo: -∞ < sinh(x) < +∞ Float64

Exemplos

Exemplo de uso

SELECT sinh(0)
0

sqrt

Introduzido na versão: v1.1.0

Retorna a raiz quadrada do argumento.

Sintaxe

sqrt(x)

Argumentos

Valor retornado

Retorna a raiz quadrada de x Float*

Exemplos

Exemplo de uso

SELECT sqrt(16);
4

tan

Introduzido em: v1.1.0

Retorna a tangente do argumento.

Sintaxe

tan(x)

Argumentos

Valor retornado

Retorna a tangente de x. Float*

Exemplos

Exemplo de uso

SELECT tan(0);
0

tanh

Introduzido em: v20.1.0

Retorna a tangente hiperbólica.

Sintaxe

tanh(x)

Argumentos

Valor retornado

Retorna valores no intervalo: -1 < tanh(x) < 1 Float*

Exemplos

Exemplo de uso

SELECT tanh(0)
0

tgamma

Introduzido em: v1.1.0

Retorna a função gama.

Sintaxe

tgamma(x)

Argumentos

Valor retornado

Retorna o valor da função gama Float*

Exemplos

Exemplo de uso

SELECT tgamma(5);
24

widthBucket

Introduzido em: v23.3.0

Retorna o número do bucket em que o parâmetro operand se encontra em um histograma com count buckets de mesma largura que abrangem o intervalo de low a high. Retorna 0 se operand for menor que low e retorna count+1 se operand for maior ou igual a high. Também há um alias case insensitive chamado WIDTH_BUCKET para garantir compatibilidade com outros bancos de dados.

Sintaxe

widthBucket(operand, low, high, count)

Aliases: width_bucket

Argumentos

Valor retornado

Retorna o número do bucket como um inteiro. Retorna 0 se operand < low e count+1 se operand >= high. UInt8/16/32/64

Exemplos

Exemplo de uso

SELECT widthBucket(10.15, -8.6, 23, 18)
11
Navigation