⌘+k ctrl+k
1.1.3 (stable)
Search Shortcut cmd + k | ctrl + k
Numeric Functions

Numeric Operators

The table below shows the available mathematical operators for numeric types.

Operator Description Example Result
+ addition 2 + 3 5
- subtraction 2 - 3 -1
* multiplication 2 * 3 6
/ float division 5 / 2 2.5
// division 5 // 2 2
% modulo (remainder) 5 % 4 1
** exponent 3 ** 4 81
^ exponent (alias for **) 3 ^ 4 81
& bitwise AND 91 & 15 11
| bitwise OR 32 | 3 35
<< bitwise shift left 1 << 4 16
>> bitwise shift right 8 >> 2 2
~ bitwise negation ~15 -16
! factorial of x 4! 24

Division and Modulo Operators

There are two division operators: / and //. They are equivalent when at least one of the operands is a FLOAT or a DOUBLE. When both operands are integers, / performs floating points division (5 / 2 = 2.5) while // performs integer division (5 // 2 = 2).

Supported Types

The modulo, bitwise, and negation and factorial operators work only on integral data types, whereas the others are available for all numeric data types.

Numeric Functions

The table below shows the available mathematical functions.

Name Description
@(x) Absolute value. Parentheses are optional if x is a column name.
abs(x) Absolute value.
acos(x) Computes the arccosine of x.
add(x, y) Alias for x + y.
asin(x) Computes the arcsine of x.
atan(x) Computes the arctangent of x.
atan2(y, x) Computes the arctangent (y, x).
bit_count(x) Returns the number of bits that are set.
cbrt(x) Returns the cube root of the number.
ceil(x) Rounds the number up.
ceiling(x) Rounds the number up. Alias of ceil.
cos(x) Computes the cosine of x.
cot(x) Computes the cotangent of x.
degrees(x) Converts radians to degrees.
divide(x, y) Alias for x // y.
even(x) Round to next even number by rounding away from zero.
exp(x) Computes e ** x.
factorial(x) See ! operator. Computes the product of the current integer and all integers below it.
fdiv(x, y) Performs integer division (x // y) but returns a DOUBLE value.
floor(x) Rounds the number down.
fmod(x, y) Calculates the modulo value. Always returns a DOUBLE value.
gamma(x) Interpolation of the factorial of x - 1. Fractional inputs are allowed.
gcd(x, y) Computes the greatest common divisor of x and y.
greatest_common_divisor(x, y) Computes the greatest common divisor of x and y.
greatest(x1, x2, ...) Selects the largest value.
isfinite(x) Returns true if the floating point value is finite, false otherwise.
isinf(x) Returns true if the floating point value is infinite, false otherwise.
isnan(x) Returns true if the floating point value is not a number, false otherwise.
lcm(x, y) Computes the least common multiple of x and y.
least_common_multiple(x, y) Computes the least common multiple of x and y.
least(x1, x2, ...) Selects the smallest value.
lgamma(x) Computes the log of the gamma function.
ln(x) Computes the natural logarithm of x.
log(x) Computes the base-10 logarithm of x.
log10(x) Alias of log. Computes the base-10 logarithm of x.
log2(x) Computes the base-2 log of x.
multiply(x, y) Alias for x * y.
nextafter(x, y) Return the next floating point value after x in the direction of y.
pi() Returns the value of pi.
pow(x, y) Computes x to the power of y.
power(x, y) Alias of pow. computes x to the power of y.
radians(x) Converts degrees to radians.
random() Returns a random number x in the range 0.0 <= x < 1.0.
round_even(v NUMERIC, s INTEGER) Alias of roundbankers(v, s). Round to s decimal places using the rounding half to even rule. Values s < 0 are allowed.
round(v NUMERIC, s INTEGER) Round to s decimal places. Values s < 0 are allowed.
setseed(x) Sets the seed to be used for the random function.
sign(x) Returns the sign of x as -1, 0 or 1.
signbit(x) Returns whether the signbit is set or not.
sin(x) Computes the sin of x.
sqrt(x) Returns the square root of the number.
subtract(x, y) Alias for x - y.
tan(x) Computes the tangent of x.
trunc(x) Truncates the number.
xor(x, y) Bitwise XOR.

@(x)

Description Absolute value. Parentheses are optional if x is a column name.
Example @(-17.4)
Result 17.4
Alias abs

abs(x)

Description Absolute value.
Example abs(-17.4)
Result 17.4
Alias @

acos(x)

Description Computes the arccosine of x.
Example acos(0.5)
Result 1.0471975511965976

add(x, y)

Description Alias for x + y.
Example add(2, 3)
Result 5

asin(x)

Description Computes the arcsine of x.
Example asin(0.5)
Result 0.5235987755982989

atan(x)

Description Computes the arctangent of x.
Example atan(0.5)
Result 0.4636476090008061

atan2(y, x)

Description Computes the arctangent (y, x).
Example atan2(0.5, 0.5)
Result 0.7853981633974483

bit_count(x)

Description Returns the number of bits that are set.
Example bit_count(31)
Result 5

cbrt(x)

Description Returns the cube root of the number.
Example cbrt(8)
Result 2

ceil(x)

Description Rounds the number up.
Example ceil(17.4)
Result 18

ceiling(x)

Description Rounds the number up. Alias of ceil.
Example ceiling(17.4)
Result 18

cos(x)

Description Computes the cosine of x.
Example cos(90)
Result -0.4480736161291701

cot(x)

Description Computes the cotangent of x.
Example cot(0.5)
Result 1.830487721712452

degrees(x)

Description Converts radians to degrees.
Example degrees(pi())
Result 180

divide(x, y)

Description Alias for x // y.
Example divide(5, 2)
Result 2

even(x)

Description Round to next even number by rounding away from zero.
Example even(2.9)
Result 4

exp(x)

Description Computes e ** x.
Example exp(0.693)
Result 2

factorial(x)

Description See ! operator. Computes the product of the current integer and all integers below it.
Example factorial(4)
Result 24

fdiv(x, y)

Description Performs integer division (x // y) but returns a DOUBLE value.
Example fdiv(5, 2)
Result 2.0

floor(x)

Description Rounds the number down.
Example floor(17.4)
Result 17

fmod(x, y)

Description Calculates the modulo value. Always returns a DOUBLE value.
Example fmod(5, 2)
Result 1.0

gamma(x)

Description Interpolation of the factorial of x - 1. Fractional inputs are allowed.
Example gamma(5.5)
Result 52.34277778455352

gcd(x, y)

Description Computes the greatest common divisor of x and y.
Example gcd(42, 57)
Result 3

greatest_common_divisor(x, y)

Description Computes the greatest common divisor of x and y.
Example greatest_common_divisor(42, 57)
Result 3

greatest(x1, x2, ...)

Description Selects the largest value.
Example greatest(3, 2, 4, 4)
Result 4

isfinite(x)

Description Returns true if the floating point value is finite, false otherwise.
Example isfinite(5.5)
Result true

isinf(x)

Description Returns true if the floating point value is infinite, false otherwise.
Example isinf('Infinity'::float)
Result true

isnan(x)

Description Returns true if the floating point value is not a number, false otherwise.
Example isnan('NaN'::float)
Result true

lcm(x, y)

Description Computes the least common multiple of x and y.
Example lcm(42, 57)
Result 798

least_common_multiple(x, y)

Description Computes the least common multiple of x and y.
Example least_common_multiple(42, 57)
Result 798

least(x1, x2, ...)

Description Selects the smallest value.
Example least(3, 2, 4, 4)
Result 2

lgamma(x)

Description Computes the log of the gamma function.
Example lgamma(2)
Result 0

ln(x)

Description Computes the natural logarithm of x.
Example ln(2)
Result 0.693

log(x)

Description Computes the base-10 log of x.
Example log(100)
Result 2

log10(x)

Description Alias of log. Computes the base-10 log of x.
Example log10(1000)
Result 3

log2(x)

Description Computes the base-2 log of x.
Example log2(8)
Result 3

multiply(x, y)

Description Alias for x * y.
Example multiply(2, 3)
Result 6

nextafter(x, y)

Description Return the next floating point value after x in the direction of y.
Example nextafter(1::float, 2::float)
Result 1.0000001

pi()

Description Returns the value of pi.
Example pi()
Result 3.141592653589793

pow(x, y)

Description Computes x to the power of y.
Example pow(2, 3)
Result 8

power(x, y)

Description Alias of pow. computes x to the power of y.
Example power(2, 3)
Result 8

radians(x)

Description Converts degrees to radians.
Example radians(90)
Result 1.5707963267948966

random()

Description Returns a random number x in the range 0.0 <= x < 1.0.
Example random()
Result various

round_even(v NUMERIC, s INTEGER)

Description Alias of roundbankers(v, s). Round to s decimal places using the rounding half to even rule. Values s < 0 are allowed.
Example round_even(24.5, 0)
Result 24.0

round(v NUMERIC, s INTEGER)

Description Round to s decimal places. Values s < 0 are allowed.
Example round(42.4332, 2)
Result 42.43

setseed(x)

Description Sets the seed to be used for the random function.
Example setseed(0.42)

sign(x)

Description Returns the sign of x as -1, 0 or 1.
Example sign(-349)
Result -1

signbit(x)

Description Returns whether the signbit is set or not.
Example signbit(-1.0)
Result true

sin(x)

Description Computes the sin of x.
Example sin(90)
Result 0.8939966636005579

sqrt(x)

Description Returns the square root of the number.
Example sqrt(9)
Result 3

subtract(x, y)

Description Alias for x - y.
Example subtract(2, 3)
Result -1

tan(x)

Description Computes the tangent of x.
Example tan(90)
Result -1.995200412208242

trunc(x)

Description Truncates the number.
Example trunc(17.4)
Result 17

xor(x, y)

Description Bitwise XOR.
Example xor(17, 5)
Result 20