Mathematical
Mathematical functions reference.
acos
Returns the arc cosine of the argument.
Syntax
acos(x)Arguments
Returned value
Returns the arc cosine of x Float*
Examples
Usage example
SELECT acos(0.5);1.0471975511965979Introduced in version 1.1.
acosh
Returns the inverse hyperbolic cosine.
Syntax
acosh(x)Arguments
Returned value
Returns the angle, in radians. Values from the interval: 0 ≤ acosh(x) < +∞. Float64
Examples
Usage example
SELECT acosh(1)0Introduced in version 20.12.
asin
Calculates the arcsine of the provided argument.
For arguments in the range [-1, 1] it returns the value in the range of [-pi() / 2, pi() / 2].
Syntax
asin(x)Arguments
Returned value
Returns the arcsine value of the provided argument x Float64
Examples
inverse
SELECT asin(1.0) = pi() / 2, sin(asin(1)), asin(sin(1))1 1 1float32
SELECT toTypeName(asin(1.0::Float32))Float64nan
SELECT asin(1.1), asin(-2), asin(inf), asin(nan)nan nan nan nanIntroduced in version 1.1.
asinh
Returns the inverse hyperbolic sine.
Syntax
asinh(x)Arguments
Returned value
Returns the angle, in radians. Values from the interval: -∞ < asinh(x) < +∞. Float64
Examples
Basic usage
SELECT asinh(0)0Introduced in version 20.12.
atan
Returns the arc tangent of the argument.
Syntax
atan(x)Arguments
Returned value
Returns the arc tangent of x. Float*
Examples
Usage example
SELECT atan(1);0.7853981633974483Introduced in version 1.1.
atan2
Returns the atan2 as the angle in the Euclidean plane, given in radians, between the positive x axis and the ray to the point (x, y) ≠ (0, 0).
Syntax
atan2(y, x)Arguments
y— y-coordinate of the point through which the ray passes.(U)Int*orFloat*orDecimal*x— x-coordinate of the point through which the ray passes.(U)Int*orFloat*orDecimal*
Returned value
Returns the angle θ such that -π < θ ≤ π, in radians Float64
Examples
Usage example
SELECT atan2(1, 1)0.7853981633974483Introduced in version 20.12.
atanh
Returns the inverse hyperbolic tangent.
Syntax
atanh(x)Arguments
x— Hyperbolic tangent of angle. Values from the interval: -1 < x < 1.(U)Int*,Float*orDecimal*.(U)Int*orFloat*orDecimal*
Returned value
Returns the angle, in radians. Values from the interval: -∞ < atanh(x) < +∞ Float64
Examples
Usage example
SELECT atanh(0)0Introduced in version 20.12.
cbrt
Returns the cubic root of the argument.
Syntax
cbrt(x)Arguments
Returned value
Returns the cubic root of x. Float*
Examples
Usage example
SELECT cbrt(8);2Introduced in version 1.1.
cos
Returns the cosine of the argument.
Syntax
cos(x)Arguments
Returned value
Returns the cosine of x. Float*
Examples
Usage example
SELECT cos(0);1Introduced in version 1.1.
cosh
Returns the hyperbolic cosine of the argument.
Syntax
cosh(x)Arguments
Returned value
Returns values from the interval: 1 ≤ cosh(x) < +∞ Float64
Examples
Basic usage
SELECT cosh(0)1Introduced in version 20.12.
degrees
Converts radians to degrees.
Syntax
degrees(x)Arguments
Returned value
Returns the value of x in degrees. Float64
Examples
Basic usage
SELECT degrees(3.141592653589793)180Introduced in version 22.2.
e
Returns Euler's constant (e).
Syntax
e()Returned value
Returns Euler's constant Float64
Examples
Usage example
SELECT e();2.718281828459045Introduced in version 1.1.
erf
If x is non-negative, then erf(x/(σ√2)) is the probability that a random variable having a normal distribution with standard deviation σ takes the value that is separated from the expected value by more than x.
Syntax
erf(x)Arguments
Returned value
Returns the error function value Float*
Examples
Three sigma rule
SELECT erf(3 / sqrt(2))┌─erf(divide(3, sqrt(2)))─┐
│ 0.9973002039367398 │
└─────────────────────────┘Introduced in version 1.1.
erfc
Returns a number close to 1-erf(x) without loss of precision for large x values.
Syntax
erfc(x)Arguments
Returned value
Returns the complementary error function value Float*
Examples
Usage example
SELECT erfc(0);1Introduced in version 1.1.
exp
Returns e raised to the power of x, where x is the given argument to the function.
Syntax
exp(x)Arguments
Returned value
Returns e^x Float*
Examples
Basic usage
SELECT round(exp(-1), 4)┌─round(exp(-1), 4)─┐
│ 0.3679 │
└───────────────────┘Introduced in version 1.1.
exp10
Returns 10 to the power of the given argument.
Syntax
exp10(x)Arguments
Returned value
Returns 10^x Float*
Examples
Usage example
SELECT exp10(2);100Introduced in version 1.1.
exp2
Returns 2 to the power of the given argument.
Syntax
exp2(x)Arguments
Returned value
Returns 2^x Float*
Examples
Usage example
SELECT exp2(3);8Introduced in version 1.1.
factorial
Computes the factorial of an integer value.
The factorial of 0 is 1. Likewise, the factorial() function returns 1 for any negative value.
The maximum positive value for the input argument is 20, a value of 21 or greater will cause an exception.
Syntax
factorial(n)Arguments
n— Integer value for which to calculate the factorial. Maximum value is 20.(U)Int8/16/32/64
Returned value
Returns the factorial of the input as UInt64. Returns 1 for input 0 or any negative value. UInt64
Examples
Usage example
factorial(10)3628800Introduced in version 22.11.
hypot
Returns the length of the hypotenuse of a right-angle triangle. Hypot avoids problems that occur when squaring very large or very small numbers.
Syntax
hypot(x, y)Arguments
x— The first cathetus of a right-angle triangle.(U)Int*orFloat*orDecimal*y— The second cathetus of a right-angle triangle.(U)Int*orFloat*orDecimal*
Returned value
Returns the length of the hypotenuse of a right-angle triangle. Float64
Examples
Basic usage
SELECT hypot(1, 1)1.4142135623730951Introduced in version 20.12.
intExp10
Like exp10 but returns a UInt64 number.
Syntax
intExp10(x)Arguments
Returned value
Returns 10^x. UInt64
Examples
Usage example
SELECT intExp10(2);100Introduced in version 1.1.
intExp2
Like exp2 but returns a UInt64 number.
Syntax
intExp2(x)Arguments
Returned value
Returns 2^x. UInt64
Examples
Usage example
SELECT intExp2(3);8Introduced in version 1.1.
lgamma
Returns the logarithm of the gamma function.
Syntax
lgamma(x)Arguments
x— The number for which to compute the logarithm of the gamma function.(U)Int*orFloat*orDecimal*
Returned value
Returns the logarithm of the gamma function of x. Float*
Examples
Usage example
SELECT lgamma(5);3.1780538303479458Introduced in version 1.1.
log
Returns the natural logarithm of the argument.
Syntax
log(x)Arguments
Returned value
Returns the natural logarithm of x. Float*
Examples
Usage example
SELECT log(10);2.302585092994046Introduced in version 1.1.
log10
Returns the decimal logarithm of the argument.
Syntax
log10(x)Arguments
Returned value
Returns the decimal logarithm of x. Float*
Examples
Usage example
SELECT log10(100);2Introduced in version 1.1.
log1p
Calculates log(1+x).
The calculation log1p(x) is more accurate than log(1+x) for small values of x.
Syntax
log1p(x)Arguments
Returned value
Returns values from the interval: -∞ < log1p(x) < +∞ Float64
Examples
Usage example
SELECT log1p(0)0Introduced in version 20.12.
log2
Returns the binary logarithm of the argument.
Syntax
log2(x)Arguments
Returned value
Returns the binary logarithm of x. Float*
Examples
Usage example
SELECT log2(8);3Introduced in version 1.1.
pi
Returns pi (π).
Syntax
pi()Returned value
Returns pi Float64
Examples
Usage example
SELECT pi();3.141592653589793Introduced in version 1.1.
pow
Returns x raised to the power of y.
Syntax
pow(x, y)Arguments
x— The base.(U)Int8/16/32/64orFloat*orDecimal*y— The exponent.(U)Int8/16/32/64orFloat*orDecimal*
Returned value
Returns x^y Float64
Examples
Usage example
SELECT pow(2, 3);8Introduced in version 1.1.
radians
Converts degrees to radians.
Syntax
radians(x)Arguments
Returned value
Returns value in radians Float64
Examples
Usage example
SELECT radians(180)3.141592653589793Introduced in version 22.2.
sign
Returns the sign of a real number.
Syntax
sign(x)Arguments
Returned value
Returns -1 for x < 0, 0 for x = 0, 1 for x > 0. Int8
Examples
Sign for zero
SELECT sign(0)0Sign for positive
SELECT sign(1)1Sign for negative
SELECT sign(-1)-1Introduced in version 21.2.
sin
Returns the sine of the argument.
Syntax
sin(x)Arguments
Returned value
Returns the sine of x.
Examples
simple
SELECT sin(1.23)0.9424888019316975sinh
Returns the hyperbolic sine.
Syntax
sinh(x)Arguments
Returned value
Returns values from the interval: -∞ < sinh(x) < +∞ Float64
Examples
Usage example
SELECT sinh(0)0Introduced in version 20.12.
sqrt
Returns the square root of the argument.
Syntax
sqrt(x)Arguments
Returned value
Returns the square root of x Float*
Examples
Usage example
SELECT sqrt(16);4Introduced in version 1.1.
tan
Returns the tangent of the argument.
Syntax
tan(x)Arguments
Returned value
Returns the tangent of x. Float*
Examples
Usage example
SELECT tan(0);0Introduced in version 1.1.
tanh
Returns the hyperbolic tangent.
Syntax
tanh(x)Arguments
Returned value
Returns values from the interval: -1 < tanh(x) < 1 Float*
Examples
Usage example
SELECT tanh(0)0Introduced in version 20.1.
tgamma
Returns the gamma function.
Syntax
tgamma(x)Arguments
Returned value
Returns the gamma function value Float*
Examples
Usage example
SELECT tgamma(5);24Introduced in version 1.1.
widthBucket
Returns the number of the bucket in which parameter operand falls in a histogram having count equal-width buckets spanning the range low to high. Returns 0 if operand is less than low, and returns count+1 if operand is greater than or equal to high.
There is also a case insensitive alias called WIDTH_BUCKET to provide compatibility with other databases.
Syntax
widthBucket(operand, low, high, count)Arguments
operand— The value for which to determine the bucket.(U)Int8/16/32/64low— The lower bound of the histogram range.(U)Int8/16/32/64high— The upper bound of the histogram range.(U)Int8/16/32/64count— The number of equal-width buckets. Cannot be zero.UInt8/16/32/64
Returned value
Returns the bucket number as an integer. Returns 0 if operand < low, returns count+1 if operand >= high. UInt8/16/32/64
Examples
Usage example
widthBucket(10.15, -8.6, 23, 18)11Introduced in version 23.3.