2017-06-29 85 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