2017-03-03 41 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