全部產品
Search
文件中心

IoT Platform:數學函數

更新時間:Jun 30, 2024

本文介紹資料分析支援的數學函數的命令格式、參數說明及樣本。您可根據實際需要選擇合適的數學函數,進行資料計算、資料轉換。

函數功能
ABS計算絕對值。
ASIN計算反正弦值。
COS計算餘弦值。
COSH計算雙曲餘弦值。
CEIL計算向上取整值。
EXP計算指數值。
FLOOR計算向下取整值。
LOG計算log對數值。
POW計算冪值。
RAND返回隨機數。
ROUND返回四捨五入到指定小數點位置的值。
SIN計算正弦值。
SINH計算雙曲正弦值。
SQRT計算平方根。
TAN計算正切值。
TANH計算雙曲正切值。
TRUNC返回截取到指定小數點位置的值。
HEX返回整數或字串的十六進位格式。
PI返回π的值。
UNHEX返回十六進位字串所代表的字串。

ABS

  • 命令格式
    double abs(double <number>)
    bigint abs(bigint <number>)
    decimal abs(decimal <number>)
  • 命令說明

    計算number的絕對值。

  • 參數說明
    number:必填。當number為DOUBLE、BIGINT或DECIMAL類型時會返回相應的類型。
    • 輸入為BIGINT,則返回BIGINT類型。
    • 輸入為DOUBLE,則返回DOUBLE類型。
    • 輸入為DECIMAL,則返回DECIMAL類型。
    • 輸入為STRING,則隱式轉換為DOUBLE類型後參與運算。
    • 輸入為NULL,則返回NULL。
    • 輸入非以上5種類型,則返回報錯。
    說明 當輸入BIGINT類型的值超過BIGINT的最大表示範圍時,會返回DOUBLE類型,但可能會損失精度。
  • 傳回值說明

    傳回值類型取決於輸入參數的類型,包含DOUBLE、BIGINT或DECIMAL類型。

  • 樣本
    --返回NULL。
        abs(null);
    
    --返回1。
        abs(-1);
    
    --返回1.2。
        abs(-1.2);
    
    --返回2.0。
        abs("-2");
    
    --返回1.2232083745629837E32。
        abs(122320837456298376592387456923748);

ASIN

  • 命令格式
    double asin(double <number>)
    decimal asin(decimal <number>)
  • 命令說明

    計算number的反正弦函數。

  • 參數說明

    number:必填。DOUBLE類型或DECIMAL類型,取值範圍為[-1,1]。如果輸入為STRING類型或BIGINT類型,會隱式轉換為DOUBLE類型後參與運算。如果輸入為其他資料類型則返回報錯。

  • 傳回值說明

    返回DOUBLE類型或DECIMAL類型,範圍在-π/2~π/2之間。如果輸入參數為NULL,則返回NULL。

  • 樣本
    --返回1.5707963267948966。
        asin(1);
    --返回-1.5707963267948966。
        asin(-1);

CEIL

  • 命令格式
    bigint ceil(double <value>)
    bigint ceil(decimal <value>)
  • 命令說明

    向上取整,返回不小於輸入值value的最小整數。

  • 參數說明

    value:必填。DOUBLE類型或DECIMAL類型。如果輸入為STRING類型或BIGINT類型,會隱式轉換為DOUBLE類型後參與運算。如果輸入為其他類型則返回報錯。

  • 傳回值說明

    返回BIGINT類型。如果輸入參數為NULL,則返回NULL。

  • 樣本
    --返回2。
        ceil(1.1);
    --返回-1。
        ceil(-1.1);

COS

  • 命令格式
    double cos(double <number>)
    decimal cos(decimal <number>)
  • 命令說明

    計算number的餘弦函數,輸入為弧度值。

  • 參數說明

    number:必填。DOUBLE類型或DECIMAL類型。如果輸入為STRING類型或BIGINT類型,會隱式轉換為DOUBLE類型後參與運算。如果輸入為其他類型則返回報錯。

  • 傳回值說明

    返回DOUBLE類型或DECIMAL類型。如果輸入參數為NULL,則返回NULL。

  • 樣本
    --返回2.6794896585028633e-8。
        cos(3.1415926/2);
    
    --返回-0.9999999999999986。
        cos(3.1415926);

COSH

  • 命令格式
    double cosh(double <number>)
    decimal cosh(decimal <number>)
  • 命令說明

    計算number的雙曲餘弦函數。

  • 參數說明

    number:必填。DOUBLE類型或DECIMAL類型。如果輸入為STRING類型或BIGINT類型,會隱式轉換為DOUBLE類型後參與運算。如果輸入為其他類型則返回報錯。

  • 傳回值說明

    返回DOUBLE類型或DECIMAL類型。如果輸入參數為NULL,則返回NULL。

  • 樣本
    --返回2.5091784169949913。
        cosh(3.1415926/2);

EXP

  • 命令格式
    double exp(double <number>)
    decimal exp(decimal <number>)
  • 命令說明

    計算number的指數函數。

  • 參數說明

    number:必填。DOUBLE類型或DECIMAL類型。如果輸入為STRING類型或BIGINT類型,會隱式轉換為DOUBLE類型後參與運算。如果輸入為其他類型則返回報錯。

  • 傳回值說明

    返回DOUBLE類型或DECIMAL類型。如果輸入參數為NULL,則返回NULL。

  • 樣本
    --返回4.810477252069109。
        exp(3.1415926/2);

FLOOR

  • 命令格式
    bigint floor(double <number>)
    bigint floor(decimal <number>)
  • 命令說明

    向下取整,返回不大於number的最大整數值。

  • 參數說明

    number:必填。DOUBLE類型或DECIMAL類型。如果輸入為STRING類型或BIGINT類型,會隱式轉換為DOUBLE類型後參與運算。如果輸入為其他類型則返回報錯。

  • 傳回值說明

    返回BIGINT類型。如果輸入參數為NULL,則返回NULL。

  • 樣本
    --返回1。
        floor(1.2);
    
    --返回0。
        floor(0.1);
    
    --返回-2。
        floor(-1.2);
    
    --返回-1。
        floor(-0.1);
    
    --返回0。
        floor(0.0);
    
    --返回0。
        floor(-0.0);

LOG

  • 命令格式
    double log(double <base>, double <x>)
    decimal log(decimal <base>, decimal <x>)
  • 命令說明

    計算以base為底的x的對數。

  • 參數說明
    • base:必填。DOUBLE類型或DECIMAL類型。如果輸入為STRING類型或BIGINT類型,會隱式轉換為DOUBLE類型後參與運算。如果輸入為其他類型則返回報錯。
    • x:必填。DOUBLE類型或DECIMAL類型。如果輸入為STRING類型或BIGINT類型,會隱式轉換為DOUBLE類型後參與運算。如果輸入為其他類型則返回報錯。
  • 傳回值說明
    返回DOUBLE類型或DECIMAL類型的對數值。
    • 如果任一輸入參數為NULL,則返回NULL。
    • 如果任一輸入參數為負數或0,則返回報錯。
    • 如果base為1(會引發一個除零行為),也會返回報錯。
  • 樣本
    --返回4.0。
        log(2, 16);

POW

  • 命令格式
    double pow(double <x>, double <y>)
    decimal pow(decimal <x>, decimal <y>)
  • 命令說明

    計算xy次方,即xy

  • 參數說明
    • x:必填。DOUBLE類型或DECIMAL類型。如果輸入為STRING類型或BIGINT類型,會隱式轉換為DOUBLE類型後參與運算。如果輸入為其他類型則返回報錯。
    • y:必填。DOUBLE類型或DECIMAL類型。如果輸入為STRING類型或BIGINT類型,會隱式轉換為DOUBLE類型後參與運算。如果輸入為其他類型則返回報錯。
  • 傳回值說明

    返回DOUBLE類型或DECIMAL類型。如果任一輸入參數為NULL,則返回NULL。

  • 樣本
    --返回65536.0。
        pow(2, 16);

RAND

  • 命令格式
    double rand(bigint <seed>)
  • 命令說明

    返回DOUBLE類型的隨機數,傳回值區間是0~1。

  • 參數說明

    seed:可選。BIGINT類型。隨機數種子,決定隨機數序列的起始值。

    說明 您可以通過seed確定隨機數序列,seed確定後,即可固定該函數的返回結果。
  • 傳回值說明

    返回DOUBLE類型。

  • 樣本
    --返回4.7147460303803655E-4。
        rand();
    --返回0.7308781907032909。
        rand(1);

ROUND

  • 命令格式
    double round(double <number>[, bigint <decimal_places>])
    decimal round(decimal <number>[, bigint <decimal_places>])
  • 命令說明

    四捨五入到指定小數點位置。

  • 參數說明
    • number:必填。DOUBLE類型或DECIMAL類型。如果輸入為STRING類型或BIGINT類型,會隱式轉換為DOUBLE類型後參與運算。如果輸入是其他類型則返回報錯。
    • decimal_places:可選。BIGINT類型常量,四捨五入計算到小數點後的位置,其他型別參數會返回報錯。如果省略表示四捨五入到個位元,預設值為0。
      說明 decimal_places可以是負數。負數會從小數點向左開始計數,並且不保留小數部分。如果decimal_places超過了整數部分長度,返回0。
  • 傳回值說明

    返回DOUBLE類型或DECIMAL類型。如果任一輸入參數為NULL,則返回NULL。

  • 樣本
    --返回125.0。
        round(125.315);
    --返回125.3。
        round(125.315, 1);
    --返回125.32。
        round(125.315, 2);
    --返回125.315。
        round(125.315, 3);
    --返回-125.32。
        round(-125.315, 2);
    --返回100.0。
        round(123.345, -2);
    --返回NULL。
        round(null);
    --返回123.345。
        round(123.345, 4);
    --返回0.0。
        round(123.345, -4);

SIN

  • 命令格式
    double sin(double <number>)
    decimal sin(decimal <number>)
  • 命令說明

    計算number的正弦函數,輸入為弧度值。

  • 參數說明

    number:必填。DOUBLE類型或DECIMAL類型。如果輸入為STRING類型或BIGINT類型,會隱式轉換為DOUBLE類型後參與運算。如果輸入其他類型則返回報錯。

  • 傳回值說明

    返回DOUBLE類型或DECIMAL類型。如果輸入參數為NULL,則返回NULL。

  • 樣本
    --返回-0.3048106211022167。
        sin(60);

SINH

  • 命令格式
    double sinh(double <number>)
    decimal sinh(decimal <number>)
  • 命令說明

    計算number的雙曲正弦函數。

  • 參數說明

    number:必填。DOUBLE類型或DECIMAL類型。如果輸入為STRING類型或BIGINT類型,會隱式轉換為DOUBLE類型後參與運算。如果輸入其他類型則返回報錯。

  • 傳回值說明

    返回DOUBLE類型或DECIMAL類型。如果輸入參數為NULL,則返回NULL。

  • 樣本
    --返回5.343237290762231E12。
        sinh(30);

SQRT

  • 命令格式
    double sqrt(double <number>)
    decimal sqrt(decimal <number>)
  • 命令說明

    計算number的平方根。

  • 參數說明

    number:必填。DOUBLE類型或DECIMAL類型,必須大於0,否則,返回異常。如果輸入為STRING類型或BIGINT類型,會隱式轉換為DOUBLE類型後參與運算。如果輸入其他類型則返回報錯。

  • 傳回值說明

    返回DOUBLE類型或DECIMAL類型。如果輸入參數為NULL,則返回NULL。

  • 樣本
    --返回2.0。
        sqrt(4);

TAN

  • 命令格式
    double tan(double <number>)
    decimal tan(decimal <number>)
  • 命令說明

    計算number的正切函數,輸入為弧度值。

  • 參數說明

    number:必填。DOUBLE類型或DECIMAL類型。如果輸入為STRING類型或BIGINT類型,會隱式轉換為DOUBLE類型後參與運算。如果輸入其他類型則返回報錯。

  • 傳回值說明

    返回DOUBLE類型或DECIMAL類型。如果輸入參數為NULL,則返回NULL。

  • 樣本
    --返回-6.405331196646276。
        tan(30);

TANH

  • 命令格式
    double tanh(double <number>)
    decimal tanh(decimal <number>)
  • 命令說明

    計算number的雙曲正切函數。

  • 參數說明

    number:必填。DOUBLE類型或DECIMAL類型。如果輸入為STRING類型或BIGINT類型,會隱式轉換為DOUBLE類型後參與運算。如果輸入其他類型則返回報錯。

  • 傳回值說明

    返回DOUBLE類型或DECIMAL類型。如果輸入參數為NULL,則返回NULL。

  • 樣本
    --返回1.0。
    tanh(30);

TRUNC

  • 命令格式
    double trunc(double <number>[, bigint <decimal_places>])
    decimal trunc(decimal <number>[, bigint <decimal_places>])
  • 命令說明

    將輸入值number截取到指定小數點位置。

  • 參數說明
    • number:必填。DOUBLE類型或DECIMAL類型。如果輸入為STRING類型或BIGINT類型,會隱式轉換為DOUBLE類型後參與運算。如果輸入其他類型則返回報錯。
    • decimal_places:可選。BIGINT類型常量,要截取到的小數點位置。其他型別參數會隱式轉為BIGINT,省略此參數時預設截取到個位元。
      說明 decimal_places可以是負數,負數會從小數點向左開始截取,並且不保留小數部分。如果decimal_places超過了整數部分長度,則返回0。
  • 傳回值說明

    傳回值類型為DOUBLE或DECIMAL類型。如果任一輸入參數為NULL,則返回NULL。

    說明
    • 返回DOUBLE類型時,返回的結果顯示可能不符合預期,例如trunc(125.815,1),這個DOUBLE類型顯示問題任何系統都存在。
    • 截取掉的部分補0。
  • 樣本
    --返回125.0。
        trunc(125.815,0);
    --返回125.80000000000001。
        trunc(125.815,1);
    --返回125.81。
        trunc(125.815,2);
    --返回125.815。
        trunc(125.815,3);
    --返回-125.81。
        trunc(-125.815,2);
    --返回120.0。
        trunc(125.815,-1);
    --返回100.0。
        trunc(125.815,-2);
    --返回0.0。
        trunc(125.815,-3);
    --返回123.345。
        trunc(123.345,4);
    --返回0.0。
        trunc(123.345,-4);

HEX

  • 命令格式
    string hex(bigint <number>) 
    string hex(string <number>)
    string hex(binary <number>)
  • 命令說明

    將整數或字串轉換為十六進位格式。

  • 參數說明

    number:必填。如果number是BIGINT類型,那麼返回number的十六進位表示。如果number是STRING類型,則返回該字串的十六進位表示。

  • 傳回值說明
    • 如果輸入非0或非NULL參數,則返回STRING類型。
    • 如果輸入參數為0,則返回0。
    • 如果輸入參數為NULL,則返回報錯。
  • 樣本
    --返回0。
        hex(0);
    --返回616263。
        hex('abc');
    --返回11。
        hex(17);
    --返回3137。
        hex('17');
    --返回報錯。 
        hex(null);

UNHEX

  • 命令格式
    binary unhex(string <number>)
  • 命令說明

    返回十六進位字串所代表的字串。

  • 參數說明

    number:必填。為十六進位字串。

  • 傳回值說明

    返回BINARY類型。如果輸入參數為0,則返回報錯;如果輸入參數為NULL,則返回NULL。

  • 樣本
    --返回abc。
        unhex('616263');
    --返回abc。
        unhex(616263);

PI

  • 命令格式
    double pi()
  • 命令說明

    返回π的值。

  • 傳回值說明

    返回DOUBLE類型。

  • 樣本
    --返回3.141592653589793。
        pi();