当我在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个项目。
答案 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