2014-09-27 66 views
2

我有一個包含以下記錄的列ID(數據類型整數):如何從配置單元中的數字列中獲取格式錯誤或字符串類型的數據?

1 
2 
NULL 
x 
y 

作爲蜂巢自動轉換xy到NULL,我第一鑄造id列爲字符串。現在我想要count(id)其中id不是來自[0-9],也不是NULL。在我的情況下,計數應該是2,但它不適用於xy。我也得到NULL的數量,在我的例子3.

我試過使用LIKE,RLIKEregexp_extract(id,'\&q=([^\&]+)

有人可以告訴我如何做到這一點?

+0

爲什麼不從'count'中減去'1'? – gobrewers14 2014-09-29 01:09:43

回答

0

我嘗試了類似的東西,它爲我工作。我創建了一個外部表與您的數據:

CREATE EXTERNAL TABLE temp_count (count STRING) ROW FORMAT DELIMITED 
    FIELDS TERMINATED BY '\t' LOCATION 'user/$username/data' 

現在我運行這樣的查詢: (編輯)

select count(*) from (select (count - count) as value from temp_count where count != 'NULL')q1 where value is NULL; 

和我得到2作爲輸出。

讓我知道如果我在這裏丟失東西

+0

我已經嘗試了您的解決方案,但是通過這種方式,我將能夠獲得列中存在的所有整數值的計數,而不是畸形數據的計數。 – Bector 2014-09-30 07:33:01

+0

哦,我的壞,我誤解了這個問題...將檢查,並得到回覆 – Amar 2014-09-30 08:27:47

+0

編輯答案,請檢查現在 – Amar 2014-09-30 08:41:25

相關問題