Table 4-14. Mathematical Functions in PostgreSQL

Function

Return Type

Description

   

abs (x)

(same as argument type)

absolute value

   

cbrt (double precision)

double precision

cube root

   

ceil (numeric)

numeric

smallest integer not less than argument

   

degrees (double precision)

double precision

convert radians to degrees

   

exp (double precision)

double precision

exponential function

   

floor (numeric)

numeric

largest integer not greater than argument

   

ln (double precision)

double precision

natural logarithm

   

log (double precision)

double precision

base 10 algorithm

   

log (base numeric, x numeric)

numeric

logarithm to specified base

   

mod (y, x)

(same as argument types)

remainder (modulo) of the division y/x

   

pi ()

double precision

"Pi" constant

   

pow (double precision, double precision)

double precision

raise number to the specified exponent

   

radians (double precision)

double precision

convert degrees to radians

   

random ()

double precision

a pseudo-random value between 0.0 to 1.0

   

round (double precision)

double precision

round to nearest integer

   

round (value numeric, scale integer)

numeric

round to specified number of decimal places

   

sqrt (double precision)

double precision

square root

   

trunc (double precision)

double precision

truncate (toward zero)

   

trunc (value numeric, scale integer)

numeric

truncate to specified number of decimal places

   

Example 4-45. Using the random() and round() Functions

The following SQL statement generates a random number from 0.0 to 1.0 with the random() function, which is multiplied by an integer constant of 53, and rounded to the nearest integer.

booktown=# SELECT round(53 * random());
 round
-------
    36
(1 row)
    
booktown=# SELECT round(53 * random());
 round
-------
    11
(1 row)

As you can see in Example 4-45 , the first time the statement is executed, the returned value is 36. The second time the statement is executed, it returns 11. As you might expect, the results of random() are totally unpredictable. round() , on the other hand, always rounds a numeric value to the nearest whole integer.

Table 4-15. Trigonometric Functions

Function

Description

acos(double precision x)

Returns the inverse cosine of the passed double precision value x

asin(double precision x)

Returns the inverse sine of the passed double precision value x

atan(double precision x)

Returns the inverse tangent of the passed double precision value x

atan2(double precision x,double precision y)

Returns the inverse tangent of the quotient of double precision values ( y divided by x )

cos(double precision x)

Returns the cosine of the double precision value x

cot(double precision x)

Returns the cotangent of the double precision value x

sin(double precision x)

Returns the sine of the double precision value x

tan(double precision x)

Returns the tangent of the double precision value x