Pular para o conteúdo principal

Visão geral

As funções aritméticas funcionam com quaisquer dois operandos do tipo UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64, Float32 ou Float64. Antes de executar a operação, ambos os operandos são convertidos para o tipo de resultado. O tipo de resultado é determinado da seguinte forma (a menos que especificado de outra forma na documentação da função abaixo):
  • Se ambos os operandos tiverem até 32 bits, o tamanho do tipo de resultado será o do próximo tipo maior em relação ao maior dos dois operandos (promoção de tamanho de inteiro). Por exemplo, UInt8 + UInt16 = UInt32 ou Float32 * Float32 = Float64.
  • Se um dos operandos tiver 64 bits ou mais, o tamanho do tipo de resultado será o mesmo do maior dos dois operandos. Por exemplo, UInt32 + UInt128 = UInt128 ou Float32 * Float64 = Float64.
  • Se um dos operandos for com sinal, o tipo de resultado também será com sinal; caso contrário, será sem sinal. Por exemplo, UInt32 * Int32 = Int64 ou UInt32 * UInt32 = UInt64.
Essas regras garantem que o tipo de resultado será o menor tipo capaz de representar todos os resultados possíveis. Embora isso introduza um risco de overflow próximo ao limite do intervalo de valores, também garante que os cálculos sejam executados rapidamente usando a maior largura nativa de inteiro, de 64 bits. Esse comportamento também garante compatibilidade com muitos outros bancos de dados que oferecem inteiros de 64 bits (BIGINT) como o maior tipo inteiro. Exemplo:
Os estouros ocorrem da mesma forma que em C++.

abs

Introduzido em: v1.1.0 Calcula o valor absoluto de x. Não tem efeito se x for de um tipo sem sinal. Se x for de um tipo com sinal, retorna um número sem sinal. Sintaxe
Argumentos
  • x — Valor cujo valor absoluto será obtido
Valor retornado O valor absoluto de x Exemplos Exemplo de uso
Query
Response

avg2

Introduzido em: v25.11.0 Calcula e retorna o valor médio dos argumentos fornecidos. Suporta tipos numéricos e temporais. Sintaxe
Argumentos
  • x1, x2] — Aceita dois valores para calcular a média.
Valor retornado Retorna a média dos argumentos fornecidos, convertida para o maior tipo compatível. Exemplos Tipos numéricos
Query
Response
Tipos decimais
Query
Response
Tipos Date
Query
Response
Tipos de DateTime
Query
Response
Tipos de Time64
Query
Response

byteSwap

Introduzido em: v23.10.0 Inverte os bytes de um inteiro, ou seja, altera sua ordem de bytes. O exemplo abaixo pode ser entendido da seguinte forma:
  1. Converta o inteiro decimal para seu equivalente hexadecimal em ordem big-endian, ou seja, 3351772109 -> C7 C7 FB CD (4 bytes)
  2. Inverta os bytes, ou seja, C7 C7 FB CD -> CD FB C7 C7
  3. Converta o resultado de volta para um inteiro, assumindo big-endian, ou seja, CD FB C7 C7 -> 3455829959 Um caso de uso dessa função é inverter endereços IPv4:
Sintaxe
Argumentos Valor retornado Retorna x com a ordem dos bytes invertida. (U)Int* Exemplos Exemplo de uso
Query
Response
8 bits
Query
Response
16 bits
Query
Response
32 bits
Query
Response
64 bits
Query
Response

divide

Introduzido na versão: v1.1.0 Calcula o quociente entre dois valores, a e b. O tipo do resultado é sempre Float64. A divisão inteira é fornecida pela função intDiv.
A divisão por 0 retorna inf, -inf ou nan.
Sintaxe
Argumentos
  • x — Dividendo - y — Divisor
Valor retornado O quociente de x e y Exemplos Divisão de dois números
Query
Response
Divisão por zero
Query
Response

divideDecimal

Introduzido em: v22.12.0 Realiza a divisão entre dois valores decimais. O valor resultante será do tipo Decimal256. A escala do resultado pode ser especificada explicitamente pelo argumento result_scale (um Integer constante no intervalo [0, 76]). Se não for especificada, a escala do resultado será a maior escala entre os argumentos fornecidos.
Esta função é significativamente mais lenta do que a divide comum. Se você não precisar realmente de precisão controlada e/ou precisar de cálculo rápido, considere usar divide.
Sintaxe
Argumentos
  • x — Primeiro valor: Decimal. - y — Segundo valor: Decimal. - result_scale — Escala do resultado. Tipo Int/UInt.
Valor retornado O resultado da divisão com a escala especificada. Decimal256 Exemplos Exemplo 1
Query
Response
Exemplo 2
Query
Response

divideOrNull

Introduzido em: v25.5.0 O mesmo que divide, mas retorna NULL ao dividir por zero. Sintaxe
Argumentos
  • x — Dividendo - y — Divisor
Valor retornado O quociente entre x e y, ou NULL. Exemplos Divisão por zero
Query
Response

gcd

Introduzido em: v1.1.0 Retorna o máximo divisor comum de dois valores a e b. Uma exceção é gerada ao dividir por zero ou ao dividir o menor número negativo por menos um. Sintaxe
Argumentos
  • x — Primeiro inteiro - y — Segundo inteiro
Valor retornado O máximo divisor comum entre x e y. Exemplos Exemplo de uso
Query
Response

ifNotFinite

Introduzido em: v20.3.0 Verifica se um valor de ponto flutuante é finito. Você pode obter um resultado semelhante usando o operador ternário: isFinite(x) ? x : y. Sintaxe
Argumentos
  • x — Valor a ser verificado para saber se é infinito. Float*
  • y — Valor de fallback. Float*
Valor retornado
  • x se x for finito.
  • y se x não for finito.
Exemplos Exemplo de uso
Query
Response

intDiv

Introduzido em: v1.1.0 Executa a divisão inteira de dois valores, x por y. Em outras palavras, calcula o quociente arredondado para baixo até o menor inteiro seguinte. O resultado tem a mesma largura que o dividendo (o primeiro parâmetro). Uma exceção é lançada ao dividir por zero, quando o quociente não cabe no intervalo do dividendo ou ao dividir o menor número negativo por menos um. Sintaxe
Argumentos
  • x — Operando esquerdo. - y — Operando direito.
Valor retornado Resultado da divisão inteira de x por y Exemplos Divisão inteira de dois floats
Query
Response
O quociente não cabe na faixa do dividendo
Query
Response

intDivOrNull

Introduzido em: v25.5.0 Igual a intDiv, mas retorna NULL ao dividir por zero ou ao dividir o menor número negativo por menos um. Sintaxe
Argumentos Valor retornado Resultado da divisão inteira de x por y, ou NULL. Exemplos Divisão inteira por zero
Query
Response
Divisão do menor número negativo por -1
Query
Response

intDivOrZero

Introduzido em: v1.1.0 Igual a intDiv, mas retorna zero ao dividir por zero ou ao dividir o menor número negativo por menos um. Sintaxe
Argumentos Valor retornado Resultado da divisão inteira de a por b, ou zero. Exemplos Divisão inteira por zero
Query
Response
Divisão do menor número negativo por -1
Query
Response

isFinite

Introduzido em: v1.1.0 Retorna 1 se o argumento Float32 ou Float64, ou BFloat16, não for infinito nem NaN; caso contrário, retorna 0. Sintaxe
Argumentos
  • x — Número a ser verificado quanto à finitude. Float* ou BFloat16
Valor retornado 1 se x não for infinito nem NaN; caso contrário, 0. Exemplos Verifique se um número é finito
Query
Response

isInfinite

Introduzido em: v1.1.0 Retorna 1 se o argumento Float32, Float64 ou BFloat16 for infinito; caso contrário, retorna 0. Observe que 0 é retornado para NaN. Sintaxe
Argumentos
  • x — Número a ser verificado quanto à infinitude. Float* ou BFloat16
Valor retornado 1 se x for infinito; caso contrário, 0 (inclusive para NaN). Exemplos Verifique se um número é infinito
Query
Response

isNaN

Introduzido em: v1.1.0 Retorna 1 se o argumento do tipo Float32, Float64 ou BFloat16 for NaN; caso contrário, retorna 0. Sintaxe
Argumentos
  • x — Argumento a ser avaliado para verificar se é NaN. Float* ou BFloat16
Valor retornado 1 se for NaN; caso contrário, 0 Exemplos Exemplo de uso
Query
Response

lcm

Introduzido em: v1.1.0 Retorna o mínimo múltiplo comum de dois valores x e y. Uma exceção é gerada ao dividir por zero ou ao dividir o menor número negativo por menos um. Sintaxe
Argumentos
  • x — Primeiro número inteiro. (U)Int*
  • y — Segundo número inteiro. (U)Int*
Valor retornado Retorna o mínimo múltiplo comum de x e y. (U)Int* Exemplos Exemplo de uso
Query
Response

max2

Introduzido em: v21.11.0 Retorna o maior de dois valores numéricos, x e y. Sintaxe
Argumentos Valor retornado Retorna o maior valor entre x e y. Float64 Exemplos Exemplo de uso
Query
Response

midpoint

Introduzido em: v25.11.0 Calcula e retorna a média dos argumentos fornecidos. Oferece suporte a tipos numéricos e temporais. Sintaxe
Argumentos
  • x1[, x2, ...] — Aceita um único valor ou vários valores para calcular a média.
Valor retornado Retorna a média dos argumentos fornecidos, promovida para o maior tipo compatível. Exemplos Tipos numéricos
Query
Response
Tipos decimais
Query
Response
Tipo Date
Query
Response
Tipos de DateTime
Query
Response
Tipos Time64
Query
Response

min2

Introduzido em: v21.11.0 Retorna o menor entre dois valores numéricos, x e y. Sintaxe
Argumentos Valor retornado Retorna o menor valor entre x e y. Float64 Exemplos Exemplo de uso
Query
Response

minus

Introduzido em: v1.1.0 Calcula a diferença entre dois valores a e b. O resultado é sempre com sinal. Assim como em plus, é possível subtrair um inteiro de uma data ou data com hora. Além disso, há suporte à subtração entre data com hora, resultando na diferença de tempo entre elas. Sintaxe
Argumentos
  • x — Minuendo. - y — Subtraendo.
Valor retornado x menos y Exemplos Subtraindo dois números
Query
Response
Subtração entre um inteiro e uma data
Query
Response

modulo

Introduzido em: v1.1.0 Calcula o resto da divisão de a por b. O tipo do resultado é inteiro se ambas as entradas forem inteiras. Se uma das entradas for um número de ponto flutuante, o tipo do resultado será Float64. O resto é calculado como em C++. A divisão truncada é usada para números negativos. É lançada uma exceção ao dividir por zero ou ao dividir o menor número negativo por menos um. Sintaxe
Aliases: mod Argumentos
  • a — O dividendo - b — O divisor (módulo)
Valor retornado O resto da divisão de a por b Exemplos Exemplo de uso
Query
Response

moduloLegacy

Introduzido na versão: v1.1.0 Calcula o resto de uma divisão. Esta é a implementação legada do módulo que usa o operador % do C++, que pode produzir resultados negativos para argumentos negativos. Esta função existe para manter a compatibilidade com a lógica antiga de particionamento de tabelas. Use modulo ou positiveModulo para o comportamento padrão. Sintaxe
Argumentos Valor retornado Retorna o resto da divisão. (U)Int* ou Float* Exemplos Uso básico
Query
Response

moduloOrNull

Introduzido em: v25.5.0 Calcula o resto da divisão de a por b. Semelhante à função modulo, exceto que moduloOrNull retorna NULL se o argumento da direita for 0. Sintaxe
Aliases: modOrNull Argumentos Valor retornado Retorna o resto da divisão de x por y, ou NULL quando o divisor é zero. Exemplos moduloOrNull com zero
Query
Response

moduloOrZero

Introduzido em: v20.3.0 Semelhante a modulo, mas retorna zero quando o divisor é zero, em vez de lançar uma exceção, como ocorre com a função modulo. Sintaxe
Argumentos Valor retornado Retorna o resto de a % b, ou 0 quando o divisor é 0. Exemplos Exemplo de uso
Query
Response

multiply

Introduzido em: v1.1.0 Calcula o produto de dois valores, x e y. Sintaxe
Argumentos Valor retornado Retorna o produto de x e y Exemplos Multiplicação de dois números
Query
Response

multiplyDecimal

Introduzido em: v22.12.0 Realiza a multiplicação de dois números decimais. O valor resultante será do tipo Decimal256. A escala do resultado pode ser especificada explicitamente pelo argumento result_scale (Integer constante no intervalo [0, 76]). Se não for especificada, a escala do resultado será a maior escala entre os argumentos fornecidos.
Essas funções são significativamente mais lentas do que a multiply comum. Se você não precisa de precisão controlada e/ou precisa de um cálculo rápido, considere usar multiply
Sintaxe
Argumentos
  • a — Primeiro valor. Decimal
  • b — Segundo valor. Decimal
  • result_scale — Escala do resultado. (U)Int*
Valor retornado O resultado da multiplicação com a escala fornecida. Tipo: Decimal256 Exemplos Exemplo de uso
Query
Response
Diferença em relação à multiplicação normal
Query
Response
Estouro em decimal
Query
Response

negate

Introduzido em: v1.1.0 Nega o argumento x. O resultado é sempre um número com sinal. Sintaxe
Argumentos
  • x — O valor a ser negado.
Valor retornado Retorna -x a partir de x Exemplos Exemplo de uso
Query
Response

plus

Introduzido em: v1.1.0 Calcula a soma de dois valores x e y. Alias: x + y (operador). É possível somar um inteiro e uma data ou uma data com hora. A primeira operação incrementa o número de dias da data; a segunda incrementa o número de segundos da data com hora. Também é possível somar uma data e uma hora. Somar um Date e um Time produz um DateTime. Somar um Date e um Time64, ou um Date32 e um Time ou Time64, produz um DateTime64. Sintaxe
Argumentos
  • x — Operando esquerdo. - y — Operando direito.
Valor retornado Retorna a soma de x e y Exemplos Somando dois números
Query
Response
Somando um inteiro e uma data
Query
Response
Adicionando data e hora
Query
Response

positiveModulo

Introduzido em: v22.11.0 Calcula o resto da divisão de x por y. Semelhante à função modulo, exceto que positiveModulo sempre retorna um número não negativo. Sintaxe
Aliases: positive_modulo, pmod Argumentos Valor retornado Retorna a diferença entre x e o maior inteiro não superior a x que seja divisível por y. Exemplos Exemplo de uso
Query
Response

positiveModuloOrNull

Introduzido em: v25.5.0 Calcula o resto da divisão de a por b. Semelhante à função positiveModulo, exceto que positiveModuloOrNull retornará NULL se o argumento da direita for 0. Sintaxe
Aliases: positive_modulo_or_null, pmodOrNull Argumentos Valor retornado Retorna a diferença entre x e o inteiro mais próximo divisível por y que não seja maior que x; null quando o divisor é zero. Exemplos positiveModuloOrNull
Query
Response
Última modificação em 25 de junho de 2026