溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

hive數(shù)學(xué)運(yùn)算詳解

發(fā)布時(shí)間:2020-04-08 11:12:28 來源:網(wǎng)絡(luò) 閱讀:521 作者:超人學(xué)院66 欄目:大數(shù)據(jù)

1. 加法操作: +

語法: A + B

操作類型:所有數(shù)值類型

說明:返回A與B相加的結(jié)果。結(jié)果的數(shù)值類型等于A的類型和B的類型的最小父類型(詳見數(shù)據(jù)類型的繼承關(guān)系)。比如,int + int 一般結(jié)果為int類型,而int + double 一般結(jié)果為double類型

舉例:

hive> select1 + 9 from lxw_dual;

10

hive> createtable lxw_dual as select 1 + 1.2 from lxw_dual;

hive>describe lxw_dual;

_c0     double

2. 減法操作: -

語法: A – B

操作類型:所有數(shù)值類型

說明:返回A與B相減的結(jié)果。結(jié)果的數(shù)值類型等于A的類型和B的類型的最小父類型(詳見數(shù)據(jù)類型的繼承關(guān)系)。比如,int – int 一般結(jié)果為int類型,而int – double 一般結(jié)果為double類型

舉例:

hive> select10 – 5 from lxw_dual;

5

hive> createtable lxw_dual as select 5.6 – 4 from lxw_dual;

hive>describe lxw_dual;

_c0     double

3. 乘法操作: *

語法: A * B

操作類型:所有數(shù)值類型

說明:返回A與B相乘的結(jié)果。結(jié)果的數(shù)值類型等于A的類型和B的類型的最小父類型(詳見數(shù)據(jù)類型的繼承關(guān)系)。注意,如果A乘以B的結(jié)果超過默認(rèn)結(jié)果類型的數(shù)值范圍,則需要通過cast將結(jié)果轉(zhuǎn)換成范圍更大的數(shù)值類型

舉例:

hive> select40 * 5 from lxw_dual;

200

4. 除法操作: /

語法: A / B

操作類型:所有數(shù)值類型

說明:返回A除以B的結(jié)果。結(jié)果的數(shù)值類型為double

舉例:

hive> select40 / 5 from lxw_dual;

8.0

注意:hive中最高精度的數(shù)據(jù)類型是double,只精確到小數(shù)點(diǎn)后16位,在做除法運(yùn)算的時(shí)候要特別注意

hive>select ceil(28.0/6.999999999999999999999) from lxw_duallimit 1;   

結(jié)果為4

hive>select ceil(28.0/6.99999999999999) from lxw_dual limit1;           

結(jié)果為5

5. 取余操作: %

語法: A % B

操作類型:所有數(shù)值類型

說明:返回A除以B的余數(shù)。結(jié)果的數(shù)值類型等于A的類型和B的類型的最小父類型(詳見數(shù)據(jù)類型的繼承關(guān)系)。

舉例:

hive> select 41 % 5 from lxw_dual;

1

hive> select 8.4 % 4 from lxw_dual;

0.40000000000000036

注意:精度在hive中是個(gè)很大的問題,類似這樣的操作最好通過round指定精度

hive> select round(8.4 % 4 , 2) from lxw_dual;

0.4

6. 位與操作: &

語法: A & B

操作類型:所有數(shù)值類型

說明:返回A和B按位進(jìn)行與操作的結(jié)果。結(jié)果的數(shù)值類型等于A的類型和B的類型的最小父類型(詳見數(shù)據(jù)類型的繼承關(guān)系)。

舉例:

hive> select 4 & 8 from lxw_dual;

0

hive> select 6 & 4 from lxw_dual;

4

7. 位或操作: |

語法: A | B

操作類型:所有數(shù)值類型

說明:返回A和B按位進(jìn)行或操作的結(jié)果。結(jié)果的數(shù)值類型等于A的類型和B的類型的最小父類型(詳見數(shù)據(jù)類型的繼承關(guān)系)。

舉例:

hive> select 4 | 8 from lxw_dual;

12

hive> select 6 | 8 from lxw_dual;

14

8. 位異或操作: ^

語法: A ^ B

操作類型:所有數(shù)值類型

說明:返回A和B按位進(jìn)行異或操作的結(jié)果。結(jié)果的數(shù)值類型等于A的類型和B的類型的最小父類型(詳見數(shù)據(jù)類型的繼承關(guān)系)。

舉例:

hive> select 4 ^ 8 from lxw_dual;

12

hive> select 6 ^ 4 from lxw_dual;

2

9.位取反操作: ~

語法: ~A

操作類型:所有數(shù)值類型

說明:返回A按位取反操作的結(jié)果。結(jié)果的數(shù)值類型等于A的類型。

舉例:

hive> select ~6 from lxw_dual;

-7

hive> select ~4 from lxw_dual;

-5

更多精彩內(nèi)容請(qǐng)關(guān)注:http://bbs.superwu.cn 

關(guān)注超人學(xué)院微信二維碼:hive數(shù)學(xué)運(yùn)算詳解

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI