2017-06-29 84 views
1

我有BigQuery中的表格塔巴其中有一列可樂可樂具有以下結構的BigQuery:斯普利特錯誤()返回

1038627|21514184 

列和塔巴已經超過萬條記錄以上的表。我用this分裂成多個列

SELECT ColA,FIRST(SPLIT(ColA, '/')) part1, 
     NTH(2, SPLIT(ColA, '/')) part2 
FROM TabA 

但由於某些原因,某些行後分裂似乎不正常。

我們正在記錄這樣的,

 ColA   part1 part2 
1038627|21507470 1038627 21507470  
1038627|21534857 1038627 21507470  
1038627|21546455 1038627 21507470  
1038627|21577167 1038627 21507470 

它自己的一個隨機的基礎上發生的事情。不知道哪裏有錯誤。

SELECT COUNT(*)FROM塔巴 - 回報說1.7M記錄


SELECT可樂,FIRST(SPLIT(可樂, '|'))第一部分, NTH(2,SPLIT(ColA,'|'))part2 FROM TabA - 返回錯誤分割的170萬條記錄


SELECT FIRST(SPLIT(可樂, '|'))第一部分, NTH(2 SPLIT(可樂, '|'))第2部分從塔巴 - 回報只是1.4L與記錄正確拆分

不知道到底發生了什麼......是數據問題還是分割問題?

任何幫助將不勝感激。提前致謝!!

+0

你有使用SQL的舊版本?我強烈建議你使用[標準版](https://cloud.google.com/bigquery/docs/reference/standard-sql/),因爲解決這個問題在那裏很簡單。 –

回答

3

它是數據的問題還是與分割問題?

爲了幫助排除故障 - 我會建議運行相同的邏輯BigQuery中的標準SQL

#standardSQL 
SELECT 
    ColA, 
    SPLIT(ColA, '|')[SAFE_OFFSET(0)] AS part1, 
    SPLIT(ColA, '|')[SAFE_OFFSET(1)] AS part2 
FROM TabA 
+0

標準SQL語法引發錯誤。我是新來的標準SQL ...你能請幫助 – Munagala

+0

顯示確切的查詢你運行和錯誤 - 至少! –

+0

非常感謝@ mikhail-berlyant的幫助。我做了很少的谷歌搜索,並知道我使用的語法是錯誤的..我更正了它。它正在工作..但問題是我只得到190萬條記錄...其中總記錄數爲1799萬條記錄......任何想法爲什麼這種情況即使在標準SQL中也會發生......分裂工作是好的...但沒有記錄的方式比實際少。 – Munagala