Visão geral
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 = UInt32ouFloat32 * 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 = UInt128ouFloat32 * 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 = Int64ouUInt32 * UInt32 = UInt64.
abs
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
x— Valor cujo valor absoluto será obtido
x
Exemplos
Exemplo de uso
Query
Response
avg2
x1, x2]— Aceita dois valores para calcular a média.
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
byteSwap
- Converta o inteiro decimal para seu equivalente hexadecimal em ordem big-endian, ou seja, 3351772109 -> C7 C7 FB CD (4 bytes)
- Inverta os bytes, ou seja, C7 C7 FB CD -> CD FB C7 C7
- 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:
x— Um valor inteiro.(U)Int*
x com a ordem dos bytes invertida. (U)Int*
Exemplos
Exemplo de uso
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
divide
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.x— Dividendo -y— Divisor
Query
Response
Query
Response
divideDecimal
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.x— Primeiro valor: Decimal. -y— Segundo valor: Decimal. -result_scale— Escala do resultado. Tipo Int/UInt.
Decimal256
Exemplos
Exemplo 1
Query
Response
Query
Response
divideOrNull
divide, mas retorna NULL ao dividir por zero.
Sintaxe
x— Dividendo -y— Divisor
Query
Response
gcd
x— Primeiro inteiro -y— Segundo inteiro
x e y.
Exemplos
Exemplo de uso
Query
Response
ifNotFinite
isFinite(x) ? x : y.
Sintaxe
xsexfor finito.ysexnão for finito.
Query
Response
intDiv
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
x— Operando esquerdo. -y— Operando direito.
x por y
Exemplos
Divisão inteira de dois floats
Query
Response
Query
Response
intDivOrNull
intDiv, mas retorna NULL ao dividir por zero ou ao dividir o menor
número negativo por menos um.
Sintaxe
x por y, ou NULL.
Exemplos
Divisão inteira por zero
Query
Response
Query
Response
intDivOrZero
intDiv, mas retorna zero ao dividir por zero ou ao dividir o menor
número negativo por menos um.
Sintaxe
Query
Response
Query
Response
isFinite
1 se o argumento Float32 ou Float64, ou BFloat16, não for infinito nem NaN;
caso contrário, retorna 0.
Sintaxe
1 se x não for infinito nem NaN; caso contrário, 0.
Exemplos
Verifique se um número é finito
Query
Response
isInfinite
1 se o argumento Float32, Float64 ou BFloat16 for infinito; caso contrário, retorna 0.
Observe que 0 é retornado para NaN.
Sintaxe
1 se x for infinito; caso contrário, 0 (inclusive para NaN).
Exemplos
Verifique se um número é infinito
Query
Response
isNaN
1 se o argumento do tipo Float32, Float64 ou BFloat16 for NaN; caso contrário, retorna 0.
Sintaxe
1 se for NaN; caso contrário, 0
Exemplos
Exemplo de uso
Query
Response
lcm
x e y.
Uma exceção é gerada ao dividir por zero ou ao dividir o menor número negativo por menos um.
Sintaxe
x e y. (U)Int*
Exemplos
Exemplo de uso
Query
Response
max2
x e y.
Sintaxe
x— Primeiro valor(U)Int8/16/32/64,Float*ouDecimaly— Segundo valor(U)Int8/16/32/64,Float*ouDecimal
x e y. Float64
Exemplos
Exemplo de uso
Query
Response
midpoint
x1[, x2, ...]— Aceita um único valor ou vários valores para calcular a média.
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
min2
x e y.
Sintaxe
x— Primeiro valor(U)Int8/16/32/64ouFloat*ouDecimaly— Segundo valor(U)Int8/16/32/64ouFloat*ouDecimal
x e y. Float64
Exemplos
Exemplo de uso
Query
Response
minus
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
x— Minuendo. -y— Subtraendo.
Query
Response
Query
Response
modulo
mod
Argumentos
a— O dividendo -b— O divisor (módulo)
Query
Response
moduloLegacy
% 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
(U)Int* ou Float*
Exemplos
Uso básico
Query
Response
moduloOrNull
a por b. Semelhante à função modulo, exceto que moduloOrNull retorna NULL
se o argumento da direita for 0.
Sintaxe
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
modulo, mas retorna zero quando o divisor é zero, em vez de
lançar uma exceção, como ocorre com a função modulo.
Sintaxe
a % b, ou 0 quando o divisor é 0.
Exemplos
Exemplo de uso
Query
Response
multiply
x e y.
Sintaxe
Query
Response
multiplyDecimal
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 multiplyDecimal256
Exemplos
Exemplo de uso
Query
Response
Query
Response
Query
Response
negate
x. O resultado é sempre um número com sinal.
Sintaxe
x— O valor a ser negado.
Query
Response
plus
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
x— Operando esquerdo. -y— Operando direito.
Query
Response
Query
Response
Query
Response
positiveModulo
x por y. Semelhante à função
modulo, exceto que positiveModulo sempre retorna um número não negativo.
Sintaxe
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
a por b. Semelhante à função positiveModulo, exceto que positiveModuloOrNull retornará NULL
se o argumento da direita for 0.
Sintaxe
positive_modulo_or_null, pmodOrNull
Argumentos
x— O dividendo.(U)Int*/Float32/64. -y— O divisor (módulo).(U)Int*/Float32/64.
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