impala 接受和返回小數的內置函數


ABS()

取數據的絕對值

select abs(-12)

 


 CEIL()

返回大於或等於參數的最小整數。
 ceil(double a),
 ceil(decimal(p,s) a),
 ceiling(double a),
 ceiling(decimal(p,s) a),
 dceil(double a),
 dceil(decimal(p,s) a)

select  ceil( 123.75),ceil(12.32)

 



COALESCE()
返回傳入的參數中第一個非null的值。expre1不為空值則返回expre1;否則判斷expre2是否是空值,如果expre2不為空值則返回expre2;否則判斷expre3是否是空值,如果expre3不為空值則返回expre3;……以此類推,如果所有的表達式都為空值,則返回NULL。


FLOOR()取整,保留整數部分,舍棄小數部分

select   FLOOR(123.45),FLOOR(123.67)

而round()函數是:四舍五入



FNV_HASH()
返回從輸入參數派生的一致64位值,以便在應用程序中實現散列邏輯。
計算所有基本數據類型的 64 位 FNV-1a 非加密哈希函數。
返回類型    BIGINT

select   FNV_HASH('zhangsan')
-7812193430242165695

同一個值得到的是一樣的結果


GREATEST 取多列的最大值
支持的類型有一下幾種:
greatest(bigint a[, bigint b ...]),
greatest(double a[, double b ...]),
greatest(decimal(p,s) a[, decimal(p,s) b ...]),
greatest(string a[, string b ...]),
greatest(timestamp a[, timestamp b ...])

select GREATEST (max( coalesce(cast(user_sex as bigint),0)),max( coalesce(cast(id_card_check_flag as bigint),0))) from sdata.tablename;

least 取多列的最小值

select least (min( coalesce(cast(user_sex as bigint),0)),min( coalesce(cast(id_card_check_flag as bigint),0))) from sdata.tablename;

 



if(boolean condition, type ifTrue, type ifFalseOrNull)

ifnull(type a, type ifNull)
isnull(type a, type ifNull)

NEGATIVE()
返回帶反轉符號的參數;如果參數已經為負,則返回一個正值。

select     NEGATIVE(66), NEGATIVE(-99)

 



positive(numeric_type a)
返回未改變的原始參數(即使參數是負的)。

select     positive(66), positive(-99)

 



truncate(double_or_decimal a[, digits_to_leave]), dtrunc(double_or_decimal a[, digits_to_leave])
目的:從數值中刪除部分或全部小數。在沒有參數的情況下,刪除所有小數,留下一個整數值。可選參數指定要包含在返回值中的小數位數的數目,並且只適用於參數類型為DECIMAL的情況。truncate()和dtrunc()是同一個函數的別名。

select truncate(3.45)

select truncate(3.456,7)  位數不足,會補0

 



zeroifnull(numeric_expr)
如果數值表達式計算結果為NULL,則返回0,否則返回該表達式的結果。

select zeroifnull(null *1 )

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM