数学函数

本文为您介绍Hologres已支持的数学函数及使用用例。

说明

关于兼容PostgreSQL的字符串函数的详细使用方法,请参见数学函数

类型

函数

功能

通用数学函数

ABS

计算绝对值。

CBRT

计算立方根。

CEIL

向上取整。

CEILING

向上取整。

DEGREES

将弧度转换为角度。

EXP

计算指数。

FLOOR

向下取整。

LN

计算自然对数。

LOG

计算常用对数。

MOD

计算表达式除以x的余数。

PI

获取π常量。

POWER

计算a的b次幂。

RADIANS

计算角度转换为弧度。

RANDOM

获取一个随机数。

ROUND

计算表达式四舍五入后的整数值或保留固定小数位数。

SIGN

计算表达式的符号。

SQRT

计算表达式的平方根。

TRUNC

去掉表达式的小数位或保留固定小数位数。

WIDTH_BUCKET

计算某个值在桶中某区间的编号。

三角函数

ACOS

计算表达式的反余弦值。

ASIN

计算表达式的反正弦值。

ATAN

计算表达式的反正切值。

ATAN2

计算y/x的反正切值。

COS

计算表达式的余弦值。

COT

计算表达式的余切值。

SIN

计算表达式的正弦值。

TAN

计算表达式的正切值。

通用数学函数

ABS

  • 描述:计算绝对值。

    ABS(num)
  • 参数说明:

    num:必填,支持类型包括INT、BIGINT、REAL、DOUBLE PRECISION、NUMERIC和DECIMAL。

  • 返回值说明:

    与参数类型一致。

  • 示例:

    SELECT ABS(-17.4);

    返回结果如下。

     abs
    -----
     17.4

CBRT

  • 描述:计算立方根。

    CBRT(num)
  • 参数说明:

    num:必填,类型为DOUBLE PRECISION。

  • 返回值说明:

    返回值类型为DOUBLE PRECISION。

  • 示例:

    SELECT CBRT(9);

    返回结果如下。

          cbrt
    -----------------
     2.0800838230519

CEIL

  • 描述:向上取整。

    CEIL(num)
  • 参数说明:

    num:必填,类型为DOUBLE PRECISION或NUMERIC。

  • 返回值说明:

    与参数类型一致。

  • 示例:

    SELECT CEIL(9.2);

    返回结果如下。

     ceil
    ------
       10

CEILING

  • 描述:向上取整。

    CEILING(num)
  • 参数说明:

    num:必填,类型为DOUBLE PRECISION或NUMERIC。

  • 返回值说明:

    与参数类型一致。

  • 示例:

    SELECT CEILING(9.2);

    返回结果如下。

     ceil
    ------
       10

DEGREES

  • 描述:将弧度转换为角度。

    DEGREES(num)
  • 参数说明:

    num:必填,类型为DOUBLE PRECISION。

  • 返回值说明:

    返回值类型为DOUBLE PRECISION。

  • 示例:

    SELECT DEGREES(3.2);

    返回结果如下。

          degrees
    --------------
    183.34649444186343

EXP

  • 描述:计算指数。

    EXP(num)
  • 参数说明:

    num:必填,类型为DOUBLE PRECISION或NUMERIC。

  • 返回值说明:

    与参数类型一致。

  • 示例:

    SELECT EXP(1);

    返回结果如下。

                 exp
    ----------------
    2.718281828459045

FLOOR

  • 描述:向下取整。

    FLOOR(num)
  • 参数说明:

    num:必填,类型为DOUBLE PRECISION或NUMERIC。

  • 返回值说明:

    与参数类型一致。

  • 示例:

    SELECT FLOOR(3.8);

    返回结果如下。

     floor
    ------
         3

LN

  • 描述:计算自然对数。

    LN(num)
  • 参数说明:

    num:必填,类型为DOUBLE PRECISION或NUMERIC。

  • 返回值说明:

    与参数类型一致。

  • 示例:

    SELECT LN(3.8);

    返回结果如下。

                ln
    ----------------
    1.3350010667323401

LOG

  • 描述:计算常用对数。

    LOG(num)
  • 参数说明:

    num:必填,类型为DOUBLE PRECISION或NUMERIC。

  • 返回值说明:

    与参数类型一致。

  • 示例:

    SELECT LOG(100);

    返回结果如下。

     log
    -----
       2

MOD

  • 描述:计算表达式除以x的余数。

    MOD(num, x)
  • 参数说明:

    • num:必填,数值类型参数。

    • x:必填,数值类型参数。

  • 返回值说明:

    与参数类型一致。

  • 示例:

    SELECT MOD(9,4);

    返回结果如下。

      mod
    -----
        1

PI

  • 描述:获取π常量。

    PI()
  • 返回值说明:

    返回π常量。

  • 示例:

    SELECT PI();

    返回结果如下。

            pi
    ------------------
     3.14159265358979

POWER

  • 描述:计算a的b次幂。

    POWER(a, b)
  • 参数说明:

    • a:必填,类型为DOUBLE PRECISION。

    • b:必填,类型为DOUBLE PRECISION。

  • 返回值说明:

    返回值类型为DOUBLE PRECISION。

  • 示例:

    SELECT POWER(9, 3);

    返回结果如下。

     power
    -------
       729

RADIANS

  • 描述:角度转换为弧度。

    RADIANS(num)
  • 参数说明:

    num:必填,类型为DOUBLE PRECISION。

  • 返回值说明:

    返回值类型为DOUBLE PRECISION。

  • 示例:

    SELECT RADIANS(45);

    返回结果如下。

           radians
    -------------------
     0.785398163397448

RANDOM

  • 描述:获取一个随机数。

    RANDOM()
  • 返回值说明:

    返回一个随机数,类型为DOUBLE PRECISION,范围为[0.0, 1.0)

  • 示例:

    SELECT RANDOM();

    返回结果如下。

          random
    -------------------
     0.377819478977472

ROUND

  • 描述:

    • 计算表达式四舍五入后的整数值。

      ROUND(num)
    • 计算表达式四舍五入后的值,且保留s位小数。

      ROUND(num, s)
  • 参数说明:

    • num:必填,数值类型为DOUBLE PRECISION或NUMERIC。

      说明

      如果需要精确保留小数位数,建议您将表达式num转换为NUMERIC类型。否则会丢失小数位数精度。

    • s:选填,类型为INT。

  • 返回值说明:

    与参数类型一致。

  • 示例:

    • 示例1:

      SELECT ROUND(42.4);

      返回结果如下。

       round
      -------
          42
    • 示例2:

      SELECT ROUND(100/400::NUMERIC, 3);

      返回结果如下。

       round
      --------
       0.2500

SIGN

  • 描述:计算表达式的符号。

    SIGN(num)
  • 参数说明:

    num:必填,类型为DOUBLE PRECISION或NUMERIC。

  • 返回值说明:

    参数值大于0返回1,小于0返回-1,等于0返回0

  • 示例:

    SELECT SIGN(-8.4);

    返回结果如下。

     sign
    ------
       -1

SQRT

  • 描述:计算表达式的平方根。

    SQRT(num)
  • 参数说明:

    num:必填,类型为DOUBLE PRECISION或NUMERIC。

  • 返回值说明:

    与参数类型一致。

  • 示例:

    SELECT SQRT(2);

    返回结果如下。

          sqrt
    -----------------
     1.4142135623731

TRUNC

  • 描述:

    • 去掉表达式的小数位。

      TRUNC(num)
    • 去掉表达式的小数位,保留小数位置到s位。

      TRUNC(num, s)
  • 参数说明:

    • num:必填,类型为NUMERIC。

    • s:选填,类型为INT。

  • 返回值说明:

    返回值类型为NUMERIC。

  • 示例:

    • 示例1:

      SELECT TRUNC(2.456);

      返回值如下。

       trunc
      -------
           2
    • 示例2:

      SELECT TRUNC(2.4564, 2);

      返回值如下。

       trunc
      -------
        2.45

WIDTH_BUCKET

  • 描述:计算某个值在桶中某区间的编号。

    WIDTH_BUCKET(value, start, end, num_buckets)
  • 参数说明:

    value:必填,要进行分桶的目标值。数据类型为DOUBLE PRECISION或NUMERIC。

    start:必填,区间的起始值。数据类型为DOUBLE PRECISION或NUMERIC。

    end:必填,区间的结束值。数据类型为DOUBLE PRECISION或NUMERIC。

    num_buckets:必填,要划分的桶(区间)的数量。数据类型为INT。

  • 返回值说明:

    返回值数据类型为INT。

  • 示例:

    --范围从0到100的数据,分成5个桶,45落在(40, 60)的范围内,第三个桶。
    SELECT WIDTH_BUCKET(45, 0, 100, 5);

    返回结果如下。

     width_bucket
    --------------
                3

三角函数

ACOS

  • 描述:计算表达式的反余弦值。

    ACOS(num)
  • 参数说明:

    num:必填,数值类型参数。范围在[-1,1]之间。

  • 返回值说明:

    返回值类型为DOUBLE PRECISION。

  • 示例:

    SELECT ACOS(-1);

    返回结果如下。

           acos
    ------------------
     3.14159265358979

ASIN

  • 描述:计算表达式的反正弦值。

    ASIN(num)
  • 参数说明:

    num:必填,类型为DOUBLE PRECISION。范围在[-1,1]之间。

  • 返回值说明:

    返回值类型为DOUBLE PRECISION。

  • 示例:

    SELECT ASIN(-1);

    返回结果如下。

           asin
    ------------------
     -1.5707963267949

ATAN

  • 描述:计算表达式的反正切值。

    ATAN(num)
  • 参数说明:

    num:必填,类型为DOUBLE PRECISION。

  • 返回值说明:

    返回值类型为DOUBLE PRECISION。

  • 示例:

    SELECT ATAN(2);

    返回结果如下。

           atan
    ------------------
     1.10714871779409

ATAN2

  • 描述:计算y/x的反正切值。

    ATAN2(y, x);
  • 参数说明:

    • y:必填,类型为DOUBLE PRECISION。

    • x:必填,类型为DOUBLE PRECISION。

  • 返回值说明:

    返回值类型为DOUBLE PRECISION。

  • 示例:

    SELECT ATAN2(4, 2);

    返回结果如下。

          atan2
    ------------------
     1.10714871779409

COS

  • 描述:计算表达式的余弦值。

    COS(num)
  • 参数说明:

    num:必填,类型为DOUBLE PRECISION。

  • 返回值说明:

    返回值类型为DOUBLE PRECISION。

  • 示例:

    SELECT COS(2);

    返回结果如下。

            cos
    --------------------
     -0.416146836547142

COT

  • 描述:计算表达式的余切值。

    COT(num)
  • 参数说明:

    num:必填,类型为DOUBLE PRECISION。

  • 返回值说明:

    返回值类型为DOUBLE PRECISION。

  • 示例:

    SELECT COT(2);

    返回结果如下。

            cot
    --------------------
     -0.457657554360286

SIN

  • 描述:计算表达式的正弦值。

    SIN(num)
  • 参数说明:

    num:必填,类型为DOUBLE PRECISION。

  • 返回值说明:

    返回值类型为DOUBLE PRECISION。

  • 示例:

    SELECT SIN(2);

    返回结果如下。

            sin
    -------------------
     0.909297426825682

TAN

  • 描述:计算表达式的正切值。

    TAN(num)
  • 参数说明:

    num:必填,类型为DOUBLE PRECISION。

  • 返回值说明:

    返回值类型为DOUBLE PRECISION。

  • 示例:

    SELECT TAN(2);

    返回结果如下。

            tan
    -------------------
     -2.18503986326152