本文介紹資料分析支援的數學函數的命令格式、參數說明及樣本。您可根據實際需要選擇合適的數學函數,進行資料計算、資料轉換。
函數 | 功能 |
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>)
- 命令說明
計算x的y次方,即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。
- 返回DOUBLE類型時,返回的結果顯示可能不符合預期,例如
- 樣本
--返回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();