Hive內置的算術運算符與邏輯運算符

一.Hive內置算術運算符

1. 加法操作: +
語法: A + B
操作類型:所有數值類型
說明:返回A與B相加的結果。結果的數值類型等於A的類型和B的類型的最小父類型(詳見數據類型的繼承關係)。比如,int + int 一般結果爲int類型,而int + double 一般結果爲double類型
舉例:
hive> select 1 + 9 from t_fin_demo;
        10
hive> create table t_fin_demo  as select 1 + 1.2 fromt_fin_demo;
hive> describet_fin_demo;
        _c0     double
2. 減法操作: -
語法: A – B
操作類型:所有數值類型
說明:返回A與B相減的結果。結果的數值類型等於A的類型和B的類型的最小父類型(詳見數據類型的繼承關係)。比如,int – int 一般結果爲int類型,而int – double 一般結果爲double類型
舉例:
hive> select 10 – 5 from t_fin_demo;
        5
hive> create table t_fin_demo as select 5.6 – 4 from t_fin_demo;
hive> describe t_fin_demo;
        _c0     double
3. 乘法操作: *
語法: A * B
操作類型:所有數值類型
說明:返回A與B相乘的結果。結果的數值類型等於A的類型和B的類型的最小父類型(詳見數據類型的繼承關係)。注意,如果A乘以B的結果超過默認結果類型的數值範圍,則需要通過cast將結果轉換成範圍更大的數值類型
舉例:
hive> select 40 * 5 from t_fin_demo;
        200
4. 除法操作: /
語法: A / B
操作類型:所有數值類型
說明:返回A除以B的結果。結果的數值類型爲double
舉例:
hive> select 40 / 5 from t_fin_demo;
        8.0
注意:hive中最高精度的數據類型是double,只精確到小數點後16位,在做除法運算的時候要特別注意
hive>select ceil(28.0/6.999999999999999999999) from t_fin_demo limit 1;    
         4
hive>select ceil(28.0/6.99999999999999) from t_fin_demo  limit 1;           
        5
5. 取餘操作: %
語法: A % B
操作類型:所有數值類型
說明:返回A除以B的餘數。結果的數值類型等於A的類型和B的類型的最小父類型(詳見數據類型的繼承關係)。
舉例:
hive> select 41 % 5 from t_fin_demo;
        1
hive> select 8.4 % 4 from t_fin_demo;
        0.40000000000000036
注意:精度在hive中是個很大的問題,類似這樣的操作最好通過round指定精度
hive> select round(8.4 % 4 , 2) from t_fin_demo;
        0.4
6. 位與操作: &
語法: A & B
操作類型:所有數值類型
說明:返回A和B按位進行與操作的結果。結果的數值類型等於A的類型和B的類型的最小父類型(詳見數據類型的繼承關係)。
舉例:
hive> select 4 & 8 from t_fin_demo;
        0
hive> select 6 & 4 from t_fin_demo;
        4
7. 位或操作: |
語法: A | B
操作類型:所有數值類型
說明:返回A和B按位進行或操作的結果。結果的數值類型等於A的類型和B的類型的最小父類型(詳見數據類型的繼承關係)。
舉例:
hive> select 4 | 8 from t_fin_demo;
        12
hive> select 6 | 8 from t_fin_demo;
        14
8. 位異或操作: ^
語法: A ^ B
操作類型:所有數值類型
說明:返回A和B按位進行異或操作的結果。結果的數值類型等於A的類型和B的類型的最小父類型(詳見數據類型的繼承關係)。
舉例:
hive> select 4 ^ 8 from t_fin_demo;
        12
hive> select 6 ^ 4 from t_fin_demo;
        2
9.位取反操作: ~
語法: ~A
操作類型:所有數值類型
說明:返回A按位取反操作的結果。結果的數值類型等於A的類型。
舉例:
hive> select ~6 from t_fin_demo;
           -7
hive> select ~4 from t_fin_demo;
           -5

二.Hive內置邏輯運算符

A AND B

boolean

TRUE if both A and B are TRUE, otherwise FALSE

A && B

boolean

Same as A AND B

A OR B

boolean

TRUE if either A or B or both are TRUE, otherwise FALSE

A || B

boolean

Same as A OR B

NOT A

boolean

TRUE if A is FALSE, otherwise FALSE

!A

boolean

Same as NOT A

1. 邏輯與操作: AND
語法: A AND B
操作類型:boolean
說明:如果A和B均爲TRUE,則爲TRUE;否則爲FALSE。如果A爲NULL或B爲NULL,則爲NULL
舉例:
hive> select 1 from t_fin_demo where 1=1 and 2=2;
         1
2. 邏輯或操作: OR
語法: A OR B
操作類型:boolean
說明:如果A爲TRUE,或者B爲TRUE,或者A和B均爲TRUE,則爲TRUE;否則爲FALSE
舉例:
hive> select 1 from t_fin_demo where 1=2 or 2=2;
          1
3. 邏輯非操作: NOT
語法: NOT A
操作類型:boolean
說明:如果A爲FALSE,或者A爲NULL,則爲TRUE;否則爲FALSE
舉例:
hive> select 1 from t_fin_demo  where not 1=2;
1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章