# Funciones Numéricas
# plus
Calcula la suma de dos valores a
y b
.
plus(a, b)
Es posible sumar un entero y una fecha o una fecha con hora. La primera operación incrementa el número de días en la fecha, la segunda operación incrementa el número de segundos en la fecha con hora.
Alias
a + b
(operador)
# minus
Calcula la diferencia entre dos valores a
y b
. El resultado siempre es con signo.
Similar a plus
, es posible restar un entero de una fecha o una fecha con hora.
minus(a, b)
Alias
a - b
(operador)
# multiply
Calcula el producto de dos valores a
y b
.
multiply(a, b)
Alias:
a * b
(operador)
# divide
Calcula el cociente de dos valores a
y b
. El tipo de resultado siempre es Float64 (opens new window). La división entera se realiza mediante la función intDiv
.
divide(a, b)
La división por 0 devuelve inf
, inf
o nan
.
Alias
a / b
(operador)
# exp
Devuelve e elevado a la potencia del argumento dado.
exp(x)
# log2
Devuelve el logaritmo binario del argumento.
log2(x)
# log10
Devuelve el logaritmo decimal del argumento.
log10(x)
# cos
Devuelve el coseno del argumento.
cos(x)
# tan
Devuelve la tangente del argumento.
tan(x)
# sin
Devuelve el seno del argumento.
sin(x)
# sqrt
Devuelve la raíz cuadrada del argumento.
sqrt(x)
# abs
Calcula el valor absoluto de a
. No tiene efecto si a
es de tipo sin signo. Si a
es de tipo con signo, devuelve un número sin signo.
abs(a)
# floor
Devuelve el número redondeado más grande que sea menor o igual a x
. Un número redondeado es un múltiplo de 1 / 10N, o el número más cercano del tipo de datos apropiado si 1 / 10N no es exacto. 'N' es una constante entera, un parámetro opcional. Por defecto es cero, lo que significa redondear a un número entero. 'N' puede ser negativo.
floor(x[, N])
x
es cualquier tipo numérico. El resultado es un número del mismo tipo. Para argumentos enteros, tiene sentido redondear con un valor N
negativo (para N
no negativo, la función no hace nada). Si el redondeo causa desbordamiento (por ejemplo, floor(-128, -1)), se devuelve un resultado específico de la implementación.
Ejemplos
floor(123.45, 1) = 123.4, floor(123.45, -1) = 120
# ceil
Devuelve el número redondeado más pequeño que sea mayor o igual a x
. En todos los demás aspectos, es igual a la función floor
(ver arriba).
# round
Redondea un valor a un número específico de decimales. La función devuelve el número más cercano del orden especificado. En caso de que el número dado tenga la misma distancia a los números circundantes, la función utiliza el redondeo del banquero para los tipos de números de punto flotante y redondea lejos de cero para los otros tipos de números (Decimal).
round(expression [, decimal_places])
Argumentos
expression
- Un número que se va a redondear. Puede ser cualquier expresión que devuelva el tipo de datos numérico.decimal-places
- Un valor entero.- Si
decimal-places > 0
, entonces la función redondea el valor a la derecha del punto decimal. - Si
decimal-places < 0
, entonces la función redondea el valor a la izquierda del punto decimal. - Si
decimal-places = 0
, entonces la función redondea el valor a un número entero. En este caso, se puede omitir el argumento.
- Si
Valor devuelto
El número redondeado del mismo tipo que el número de entrada.
Ejemplos
Usar con Float
SELECT number / 2 AS x, round(x) FROM system.numbers LIMIT 3
┌───x─┬─round(divide(number, 2))─┐ │ 0 │ 0 │ │ 0.5 │ 0 │ │ 1 │ 1 │ └─────┴──────────────────────────┘
Usar con Decimal
SELECT cast(number / 2 AS Decimal(10,4)) AS x, round(x) FROM system.numbers LIMIT 3
┌───x─┬─round(CAST(divide(number, 2), 'Decimal(10, 4)'))─┐ │ 0 │ 0 │ │ 0.5 │ 1 │ │ 1 │ 1 │ └─────┴──────────────────────────────────────────────────┘
Redondeo al número más cercano.
round(3.2, 0) = 3 round(4.1267, 2) = 4.13 round(22,-1) = 20 round(467,-2) = 500 round(-467,-2) = -500
Redondeo del banquero.
round(3.5) = 4 round(4.5) = 4 round(3.55, 1) = 3.6 round(3.65, 1) = 3.6
# rand32
Devuelve un número UInt32 aleatorio, distribuido uniformemente en el rango de todos los posibles números UInt32. Utiliza un generador congruencial lineal.
# randNormal
Devuelve un número Float64 aleatorio extraído de una distribución normal (opens new window).
randNormal(mean, variance)
Argumentos
mean
-Float64
- valor medio de la distribución,variance
-Float64
- varianza de la distribución.
Valor devuelto
- Número aleatorio.
- Tipo: Float64.
Ejemplo
SELECT randNormal(10, 2) FROM numbers(5)
┌──randNormal(10, 2)─┐
│ 13.389228911709653 │
│ 8.622949707401295 │
│ 10.801887062682981 │
│ 4.5220192605895315 │
│ 10.901239123982567 │
└────────────────────┘