2017-10-06 121 views
0

當我在ARRAY_AGG中添加LIMIT子句時,我仍然在數組中獲得很多項目。 docs建議這應該起作用。在BigQuery中的ARRAY_AGG中限制

我做錯了什麼?

SELECT 
    x, 
    ARRAY_AGG((
    SELECT 
     AS STRUCT y 
    LIMIT 
     1)) y 
FROM 
    `a`, 
    UNNEST(b) b 
WHERE 
    x = 'abc' 
GROUP BY 
    1 
LIMIT 1 

...產生與STRINGARRAY一行與50個項目,當我本來預計只有1項結果。

回答

0

問題在於LIMIT子句的位置。它的範圍在SELECT聲明中,而不是ARRAY_AGG函數。這糾正了它:

SELECT 
    x, 
    ARRAY_AGG((
    SELECT 
     AS STRUCT y 
    ) LIMIT 1) y 
FROM 
    `a`, 
    UNNEST(b) b 
WHERE 
    x = 'abc' 
GROUP BY 
    1 
LIMIT 1