hive count distinct時遇到的坑

2021-10-08 22:03:41 字數 997 閱讀 3627

使用count distinct計算兩列聯合去重時,若有任何一列為null,那麼count計數時就會略過這一條。

如:count(distinct a,b) 若a或者b中有乙個是null,那麼這一行就不會參與計數

平台:hive、mysql都是如此

1、給一張測試表如下:

表名設為test,注意第三行的name是null,空值

idtools

name

1hivea2

hiveb3

hive

null

2、觀察下方執行結果:

select

distinct tools,name from test

tools

name

hive

ahive

bhive

null

3、觀察下方**執行結果

select

count

(distinct tools,name)

from test

結果:2

4、小結

這跟我們認知的情況可能是不同的,如果按照中**結果,應該是3行資料可現在顯示結果是2行。

5 繼續驗證

將**新增一行變為以下這樣:

idtools

name

1hivea2

hiveb3

hive

null

4null

m6 觀察以下**執行結果

select

count

(distinct tools,name)

from test

結果:2

7 結論

使用count distinct 兩列聯合去重時,若有任何一列為null,那麼這一行都不會計入到結果中

所以在儲存資料時一定要注意null值的處理,如將字串型別寫成『unknown』等,

使用ToluaFrameWork時遇到的一些問題

最近的專案在使用tolua框架熱更新。在做初期準備時,拿著github上的toluaframework進行學習和修改,在匯出安卓包時,遇到了一些問題,因此記錄了一下。1.plugins目錄下的x86和x86 64資料夾中的tolua要設定成不同的平台,android libs的armeabi v7a...

配置hbase zookeeper時遇到的問題

今天在配置hbase zookeeper時遇到了問題,使用list和create語句時沒有問題,但是使用put語句一直報錯 put students stud003 info name tom 2019 03 09 13 39 08,238 error main client.asyncproces...

npm run dev時遇到的問題

第一篇部落格 npm run dev時 19 verbose npm v6.14.4 20 error code elifecycle 21 error errno 1 22 error vue admin template 4.2 1 dev vue cli service serve 22 er...