全部產品
Search
文件中心

Hologres:數學函數

更新時間:Nov 06, 2024

本文為您介紹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