在BigQuery的ARRAY_AGG中限制

时间:2017-10-06 22:39:28

标签: google-bigquery

当我在LIMIT中添加ARRAY_AGG子句时,我仍然在数组中获得了很多项。 docs表明这应该有用。

我做错了吗?

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

...使用一行STRING ARRAY生成一个包含50个项目的结果,而我只预计会有1个项目。

1 个答案:

答案 0 :(得分:2)

问题是放置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