Skip to main content

Basic Arithmetic

GlueSQL provides a number of basic arithmetic operations such as absolute value (abs), division (divide), modulo (modulo), greatest common divisor (gcd), and least common multiple (lcm).

For this tutorial, we assume there's a table named Number with columns id and number.

Absolute Value - ABS

The abs function returns the absolute value of a number.

let actual = values(vec!["0, 0", "1, -3", "2, 4", "3, -29"])
.alias_as("number")
.select()
.project("column1")
.project(abs("column2")) // Takes the absolute value of column2
.project(col("column2").abs()) // Takes the absolute value of column2
.execute(glue)
.await;

Division - DIV

The divide function divides one number by another.

let actual = table("Number")
.select()
.project("id")
.project(divide("number", 3)) // Divides the number by 3
.project(divide(col("number"), 3)) // Divides the number by 3
.execute(glue)
.await;

Modulo - MOD

The modulo function returns the remainder of one number divided by another.

let actual = table("Number")
.select()
.project("id")
.project(modulo("number", 4)) // Gets the remainder of number divided by 4
.project(modulo(col("number"), 4)) // Gets the remainder of number divided by 4
.execute(glue)
.await;

Greatest Common Divisor - GCD

The gcd function returns the greatest common divisor of two numbers.

let actual = table("Number")
.select()
.project("id")
.project(gcd("number", 12)) // Gets the GCD of number and 12
.project(gcd(col("number"), 12)) // Gets the GCD of number and 12
.execute(glue)
.await;

Least Common Multiple - LCM

The lcm function returns the least common multiple of two numbers.

let actual = table("Number")
.select()
.project("id")
.project(lcm("number", 3)) // Gets the LCM of number and 3
.project(lcm(col("number"), 3)) // Gets the LCM of number and 3
.execute(glue)
.await;