2017-03-03 55 views

回答

5

很高兴你问了! BigQuery支援中的一些聚合函数,包括ARRAY_AGGIGNORE NULLSRESPECT NULLS改性剂,所以你的查询变得

#standardSQL 
SELECT ARRAY_AGG(x IGNORE NULLS) FROM UNNEST([1,NULL,2,3]) x 

,并将其传递生产[1,2,3]。更多详情请见documentation

+1

为什么我没有看到这个在[发行说明] (https://cloud.google.com/bigquery/docs/release-notes)?我认为这就是BigQuery团队宣布新功能的地方。 –

+0

它是针对发行说明提出的,但尚未发布。 –

1

另一个有趣的用例是如果你不想丢失那些NULL元素,而是想用一些默认值替换它。例如-999

下面将做到这一点

#standardSQL 
SELECT ARRAY_AGG(IFNULL(x,-999)) FROM UNNEST([1,NULL,2,3]) x 

而且万一要是你想只不同的元素 -

#standardSQL 
SELECT ARRAY_AGG(DISTINCT IFNULL(x,-999)) FROM UNNEST([1,NULL,2,3,1,NULL]) x